问题
Does onHashChange
or hashChange
work in Safari? I tested it with Safari 4.0.4 on Windows 7 and it doesn't work for me.
If it doesn't work, is there any solution to track if the hash
has changed?
回答1:
In our app we poll to check for changes:
$b.hashCheck = setInterval(
function(){
if ( window.location.hash !== $b.C.current_hash){
$b.C.current_hash = window.location.hash;
//call the on change action here
}
},$b.C.hashCheckDelay
);
$b is the global object we use for our namespace and hashCheckDelay
was empirically set at 120ms.
While it looks a bit sad to do this kind of process, there isn't any performance issue on any browser we tested.
回答2:
In Safari 4.0.4
it's not working yet but in the latest one works fine. And I didn't find any acceptable solutions to track if the hash has changed for those browsers which don't support onHashChange
.
来源:https://stackoverflow.com/questions/4029433/does-onhashchange-work-in-safari