IE中不支持JQuery window.location.hash?

时间:2012-09-04 03:12:10

标签: javascript jquery internet-explorer hash onchange

  

可能重复:
  window.location = #anchor doesn't work in IE

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

#ob是我的选择

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

有什么建议吗?谢谢!

2 个答案:

答案 0 :(得分:1)

问题不在于哈希,错误发生在之前的行中 使用var-keyword声明变量:

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

请阅读此处的说明:jQuery selector does not work in IE7/8

答案 1 :(得分:1)

我只是选择经过实战考验的图书馆来处理您的所有事情,而不是自己动手进行管理。我最喜欢的是jQuery BBQ

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

作为额外的奖励,BBQ会挂钩现代浏览器的onhashchange事件,而不是轮询location.hash的更改。