如何使脚本在使用ajax请求更新的页面上运行?

时间:2010-08-28 06:14:51

标签: javascript jquery firefox-addon

我有一个在某些页面上运行的脚本。问题是我在页面加载上附加脚本,但页面上的所有链接都会发出请求并更改响应中的内容。 (网址的哈希变化)

我需要一种方法来检查“页面”何时加载以添加我的脚本。

问题:

somesite.com/home (event load is fired)

*user clicks a link*

somesite.com/home#profile (event load isn't fired, the page is
                           already loaded, but the contents are
                           being changed through ajax calls)

我该怎么做?我正在考虑添加一个将一直检查页面并调用相应脚本的观察程序。

如何在请求结束时检查页面是否正在发送请求并执行某些操作? (我想这可能是因为Firebug会这样做)

1 个答案:

答案 0 :(得分:0)

您可以使用setInterval,并检查位置哈希值的每500毫秒:

var oldHash = '';
setInterval(function(){
   var newHash = location.hash;
   if(oldHash != newHash){
      oldHash = newHash;
      // do something
   }
}, 500);