Until all browsers support the onhashchange event what is the best workaround for this?
Is there something for this in jQuery? or as a plug-in?
Yes there is.
Check out this jQuery plugin: http://benalman.com/projects/jquery-hashchange-plugin/
Another library that abstracts url management is History.js
If you're looking for an iframe cross domain solution this seems to be the most robust out there:
http://easyxdm.net/wp/
http://www.cakemail.com/the-iframe-cross-domain-policy-problem/
I haven't tried it though and it seems like it could be a bit difficult to implement and might not work in all situations.
http://benalman.com/projects/jquery-bbq-plugin/
Not sure if this is what you're looking for or not but worth a try:
http://plugins.jquery.com/project/ba-jquery-hashchange-plugin
var lastHash = "";
window.onload=function()
{
hashChangeEventListener = setInterval("hashChangeEventHandler()", 50);
}
function hashChangeEventHandler()
{
var newHash = location.hash.split('#')[1];
if(newHash != lastHash)
{
lastHash = newHash;
//Do stuff!
}
}
Works fine for me across all tested (damn near all) platforms.