0

可能重复:
window.location = #anchor 在 IE 中不起作用

我有一个选择框,单击该框会更改基于 AJAX 的页面的 URL 中的哈希值。我有一个函数可以定期检查 window.location.hash 是否有变化,然后相应地更新内容。下面的代码是当 select 改变时改变 URL 的函数。它适用于 Firefox,但我无法让它在 IE 中运行!我不断收到一个对象不支持此属性或方法错误:

#ob 是我的选择

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

有什么建议么?谢谢!

4

2 回答 2

1

The problem is not the hash, the error happens in the line before.
declare the variable with the var-keyword:

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

Read the explanation here: jQuery selector does not work in IE7/8

于 2012-09-04T03:24:15.970 回答
1

与其滚动您自己的状态管理,不如使用一个久经考验的库来为您处理所有事情。我最喜欢的是jQuery BBQ

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

作为一个额外的好处,BBQ 挂钩到现代浏览器的onhashchange事件,而不是轮询对location.hash.

于 2012-09-04T03:26:19.107 回答