我正在为facebook扩展Chrome扩展程序。如果您使用Facebook,您知道当您向下滚动到新闻Feed /时间线/个人资料的底部时,它会显示更多帖子。扩展实际上在“喜欢”按钮旁边添加了一个按钮。所以我需要检查是否有更多帖子要添加该按钮。
现在检查页面是否已被修改,我使用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="תגיד תכל´ס" type="submit" name="taheles" onclick="apply_taheles()" data-ft="{"tn":">","type":22}"><span class="taheles_default_message">תכל´ס</span><span class="taheles_saving_message">לא תכלס</span></button>');
$(".taheles_saving_message").hide();
}, 2000);
});
将来,此扩展程序将使用AJAX,因此setInterval()
可能会给我带来更多问题。
答案 0 :(得分:0)
如果我理解正确,您希望在页面的DOM更改时收到通知。并且您希望在不使用setInterval()函数的情况下执行此操作。
由于您的问题在于在页面加载后创建的元素的附加事件处理程序中,您可能有兴趣查看jquery.live事件附件技术。我认为这将解决您的问题。
通常,您希望页面抛出突变事件。有mutation event spec可能是您正在寻找的。以下是一些可能有用的链接。
答案 1 :(得分:0)
$(document).ready(function(){
setInterval('fun()',5000);
fun();
});
function fun()
{
alert(11)
}