The Zurich release has arrived! Interested in new features and functionalities? Click here for more

"top.window.location" not working in onSubmit catalog client script?

patricklatella
Mega Sage

Hi all,

I've got a catalog item with an onSubmit catalog client script that builds a URL, and then when the user submits the form they need to be redirected to that URL.  Did something with "top.window.location" break in New York?  The script is working about half the time, sometimes it correctly directs the user to the URL in the script, and sometimes it ignores that script.  Anyone else seeing this behavior or see an issue with my script?  Thanks!

Here's the script:

function onSubmit() {

var req = g_form.getValue('enter_your_vsa_request_number_to_get_started');//this is a reference field to the [sc_request] table
var URL = "itc?id=sc_request&table=sc_request&sys_id="+req;
alert('You will be directed to the Selected Vendor Assessment Request. Please click OK.');
top.window.onbeforeunload = null;//this removes the popup that asks if you want to leave
top.window.location = URL;
}

1 ACCEPTED SOLUTION

Michael Jones -
Giga Sage

You could try a good, old-fashioned setTimeOut. Move the last part of your code into a separate function and have it call-back after a second or so. 

function onSubmit() {

var req = g_form.getValue('enter_your_vsa_request_number_to_get_started');//this is a reference field to the [sc_request] table
var URL = "itc?id=sc_request&table=sc_request&sys_id="+req;
alert('You will be directed to the Selected Vendor Assessment Request. Please click OK.');

top.window.onbeforeunload = null;//this removes the popup that asks if you want to leave
setTimeout(sendOff(URL), 1000);
}

function sendOff(URL) {
top.window.location = URL;
}

That seems to be working every time for me...

If this was helpful or correct, please be kind and remember to click appropriately!

Michael Jones - Proud member of the CloudPires team!

I hope this helps!
Michael D. Jones
Proud member of the GlideFast Consulting Team!

View solution in original post

15 REPLIES 15

sravani_r1401
Tera Contributor

Hi ,

 

Am trying to replace windows objects with Angular JS services like 

below 

 

$document rather than window.document
$interval rather than window.setInterval
$location rather than window.location
$timeout rather than window.setTimeout

 

But when tried to replace there is breaking functionality . 

 

Can you please suggest Angular JS services for window objects.