2012-05-19 42 views
0

我正在为Facebook的Chrome扩展工作。如果你使用Facebook,你知道当你向下滚动到新闻提要/时间轴/个人资料的底部时,它会显示更多的帖子。该扩展实际上在“like”按钮旁添加了一个按钮。所以我需要检查是否有更多的帖子添加该按钮。检查网页是否已被修改

现在检查页面是否被修改,我使用setInterval(function(){},2000)。 我想在用户点击按钮时运行一个函数。但是,如果我把它放在外面(甚至在里面),这个函数不起作用setInterval() - 刚才的Koder编辑

如何检查网页是否已经被修改而没有使用循环?

例子:

$(document).ready(function(){ 
    window.setInterval(function(){ 
      $(".UIActionLinks").find(".dot").css('display','none'); 
      $(".UIActionLinks").find(".taheles_link").css('display','none'); 
      $(".miniActionList").find(".dot").css('display','none'); 
      $(".miniActionList").find(".taheles_link").css('display','none'); 
       //only this function doesn't work: 
      $(".taheles_link").click(function(){ 
      $(".taheles_default_message").hide(); 
      $(".taheles_saving_message").show(); 
      }); 
       //end 
      $(".like_link").after('<span class="dot"> · </span><button class="taheles_link stat_elem as_link" title="תגיד תכל&acute;ס" type="submit" name="taheles" onclick="apply_taheles()" data-ft="{&quot;tn&quot;:&quot;&gt;&quot;,&quot;type&quot;:22}"><span class="taheles_default_message">תכל&acute;ס</span><span class="taheles_saving_message">לא תכלס</span></button>'); 
      $(".taheles_saving_message").hide(); 
    }, 2000); 
}); 

在未来,这个扩展将使用AJAX,所以setInterval()甚至可以使更多的问题对我来说。

+0

你所说的 “希望在的setInterval()正在运行来运行更多功能” 是什么意思?我不太明白你想要做什么。也许一个例子会帮助我们理解 – koenpeters

+0

我想在用户单击按钮时运行一个函数。但是,如果我把它放在外面(甚至是内部),这个函数不起作用setInterval() –

+0

所以,你的意思是你有一个点击处理函数,你连接到按钮的'click'事件,但是当你点击它? – koenpeters

回答

0

如果我理解正确,您希望在页面的DOM发生更改时收到通知。并且您希望在不使用setInterval()函数的情况下执行此操作。

由于您的问题在附加事件处理程序中,因此在页面加载后创建的元素中,您可能有兴趣检查jquery.live事件附件技术。我认为它会解决你的问题。

一般而言,您希望页面引发突变事件。有一个mutation event spec,这可能是你在找什么。以下是一些可能有用的链接。

  1. http://tobiasz123.wordpress.com/2009/01/19/utilizing-mutation-events-for-automatic-and-persistent-event-attaching/

  2. Detect element content changes with jQuery

+0

重要更新:使用突变事件的每个人现在应该切换到突变观察者。请参阅[问题](http://stackoverflow.com/questions/11425209/are-dom-mutation-observers-slower-than-dom-mutation-events),[Mozilla参考](https://developer.mozilla.org/EN-US /文档/ DOM/MutationObserver?redirectlocale = EN-US&redirectslug = DOM%2FDOM_Mutation_Observers) –

0
$(document).ready(function(){ 
    setInterval('fun()',5000); 
    fun(); 
}); 
function fun() 
{ 
    alert(11) 
}