Reputation: 44605
I am experiencing some issues binding to the hashchange event in Internet Explorer 7. All other versions of Internet Explorer - ie. 8 & 9 work without issue.
My code is:
$(window).bind('hashchange', function (e) { alert('hash changed'); });
When the hash of the url changes in Firefox, IE8, IE9 I get the alert box, but in IE7, nothing happens.
Anyone experience this before?
Upvotes: 5
Views: 5597
Reputation: 1337
[Copying this answer from jQuery - hashchange event ]
I just ran into the same problem (lack of hashchange event in IE7). A workaround that suited for my purposes was to bind the click event of the hash-changing links.
<a class='hash-changer' href='#foo'>Foo</a>
<script type='text/javascript'>
if (("onhashchange" in window) && !($.browser.msie)) {
//modern browsers
$(window).bind('hashchange', function() {
var hash = window.location.hash.replace(/^#/,'');
//do whatever you need with the hash
});
} else {
//IE and browsers that don't support hashchange
$('a.hash-changer').bind('click', function() {
var hash = $(this).attr('href').replace(/^#/,'');
//do whatever you need with the hash
});
}
</script>
Upvotes: 0
Reputation: 186562
Pretty sure IE6 and IE7 don't support it natively. Did you try using Ben Alman's jquery BBQ script which fixes this?
Upvotes: 8