0

I have a web site where we have a few elements that call javascript functions on the onclick. The javascript functions will do some processing and what not and eventually call a window.location to change the url. In Safari (mac only) window.location is not being processed until the current page is fully loaded.

window.location = 'http://google.com';

This is hard to reproduce because most sites load up pretty fast, but on our site we have different tracking / logging pixels that sometimes take a while for the page to 'fully' load so if I click any of these elements that do a window.location call, the page will not change until the current page is loaded.

I haven't been able to find a way around this. This works fine in IE, Firefox, and Safari for Windows but not on the Mac version. I also thought okay maybe I could just stop the page from loading, but I haven't found an equivalent for window.stop() in Safari.

Any help is greatly appreciated.

Thanks,
Victor

3
Contributors
4
Replies
5
Views
9 Years
Discussion Span
Last Post by ~s.o.s~
0

Some browsers do not do ANY processing until the download of the initial page is complete. This is beyond your control. You need to allow for this when designing your pages.

0

Some browsers do not do ANY processing until the download of the initial page is complete. This is beyond your control. You need to allow for this when designing your pages.

That I can understand but all the other javascript will run fine on the page. For example I have script hide/show divs when clicked, to modify cookies, etc. All that gets run, it's just the window.location call won't get executed until the page is fully loaded.

I've been trying to figure out ways around it, but nothing has come to mind yet. We have a search box that dynamically builds your url depending on what you entered, and what check boxes you checked, but clicking the search button won't replace the window.location because of the page not fully loaded.

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.