IE中不支持JQuery window.location.hash

JQuery window.location.hash not supported in IE?

本文关键字:location hash window JQuery 不支持 IE      更新时间:2023-09-26

可能重复:
window.location=#anchor不';不适用于IE

我有一个选择框,当点击它时,会更改我基于AJAX的页面的URL中的哈希。我有一个函数,它会定期检查window.location.hash是否有更改,然后相应地更新内容。以下代码是在更改选择时更改URL的函数。它可以在Firefox中工作,但我无法让它在IE中工作!我一直得到一个对象不支持这个属性或方法错误:

#ob是我选择的

$("#ob").change(function() {
   ob = $(this).val();
   window.location.hash = "#ob=" + ob;
});

有什么建议吗?谢谢

问题不在于哈希,错误发生在前一行
使用var关键字声明变量:

$("#ob").change(function() {
   var ob = $(this).val();
   window.location.hash = "#ob=" + ob;
});

请阅读此处的解释:jQuery选择器在IE7/8 中不起作用

与其推出自己的状态管理,不如使用经过战斗测试的库来为您处理一切。我最喜欢的是jQuery BBQ。

$("#ob").change(function() {
   var ob = $(this).val();
   $.bbq.pushState({ ob:ob });
});

额外的好处是,BBQ会挂接到现代浏览器的onhashchange事件,而不是轮询location.hash的更改。