我构建了一个完全依赖于Javascript的页面。 每当用户点击链接或按钮时,它都会更改网址的散列值(#doSomething)。在javascript中将setTimeout作为事件处理程序indefinetly运行
我已经设置了一个函数,每200ms检查哈希值的变化,换句话说,一个自定义的事件处理程序,并根据值是什么运行一些代码。现在看起来很好,因为我仍然处于开发过程中,而且页面非常轻。
这是我的问题可以运行一个脚本无限期地检查这个值吗?或者当页面有更多内容和东西需要处理时会影响性能?
有没有更好的方法来设置一个脚本来检测URL散列的变化?
这里是我的脚本:
var currenthash = (window.location.hash)?window.location.hash: '';
addEvent(window,'load',function() {
if (currenthash != ''){
hashChanged();
}
var timeInterval = setInterval(function() {
if (window.location.hash != currenthash) {
hashChanged();
currenthash = window.location.hash;
}
},1000);
});
var hashChanged = function (str) {
var id = window.location.hash.replace("#",'');
var selected = $id(id);
// do some more stuff
}
}
谢谢我总是喜欢使用本机代码,这正是我需要的 – Ibu 2011-05-11 01:15:30