954,568 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

Problem with window.location in Safari (mac only)

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

epod@ucla.edu
Newbie Poster
2 posts since Aug 2007
Reputation Points: 10
Solved Threads: 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.

MidiMagic
Nearly a Senior Poster
3,319 posts since Jan 2007
Reputation Points: 730
Solved Threads: 182
 
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.

epod@ucla.edu
Newbie Poster
2 posts since Aug 2007
Reputation Points: 10
Solved Threads: 0
 

The only thing I can think of is having the script load some of the time-consuming stuff with a delayed call, after doing the window sizing.

I had to deal with timing issues like this here:

http://www.daniweb.com/forums/thread85060.html

MidiMagic
Nearly a Senior Poster
3,319 posts since Jan 2007
Reputation Points: 730
Solved Threads: 182
 

> http://www.daniweb.com/forums/thread85060.html
I think this thread is turning out to be a kind of reference to all those beaten up by timing issues... ;-)

And BTW, its actually window.location.href = 'http://www.google.com' and not window.location = 'http://www.google.com' since location is an object _not_ of type String .

~s.o.s~
Failure as a human
Administrator
11,938 posts since Jun 2006
Reputation Points: 3,281
Solved Threads: 734
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You