0

我正在为 facebook 开发 chrome 扩展。如果您使用 facebook,您就会知道,当您向下滚动到新闻提要/时间线/个人资料的底部时,它会显示更多帖子。该扩展实际上在“喜欢”按钮旁边添加了一个按钮。所以我需要检查是否有更多帖子可以添加该按钮。

现在要检查页面是否已被修改,我使用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()我带来更多的问题。

4

2 回答 2

0

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

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

通常,您希望页面引发突变事件。有一个可能是您正在寻找的突变事件规范。以下是一些可能有用的链接。

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

  2. 使用 jQuery 检测元素内容的变化

于 2012-05-19T12:36:37.320 回答
0
$(document).ready(function(){
    setInterval('fun()',5000);
    fun();
});
function fun()
{
    alert(11)
}
于 2012-05-19T12:38:31.040 回答