如何让Facebook的Chrome扩展程序重复执行?

时间:2012-06-08 16:07:45

标签: javascript google-chrome google-chrome-extension

我正在尝试编写我的第一个非常简单的Google Chrome扩展程序作为朋友的笑话。我希望它用“给一个$ h1t”替换“喜欢”的实例(我知道这似乎并不成熟,但它只是为了好玩)。

到目前为止,这是我的Javascript功能;

function giveASh!t(){
document.body.innerHTML = document.body.innerHTML.replace(new RegExp("Like", "g"), "Give a sh!t");
}

据我所知,通过HTML搜索替换“Like”的每个实例。这有效。

但是,我面临的问题是,当您向下滚动新闻Feed时,新生成的内容不会被更改,任何新的“赞”实例都不会被修改。

我知道这个代码在初始页面加载完成后执行,一旦执行它就不会重新运行。

我玩过setInterval()方法,这会导致一些奇怪的错误。我将它设置为10秒的间隔,但它会影响页面上其他内容的加载(例如聊天部分),也不会太好,因为页面会“断断续续”,就好像正在进行刷新一样。最终页面会中断,并且无法再向下滚动新闻源。

我的主要观点是;我怎么能以一种不错的方式让这个javascript连续运行?也许更好的方法是监听滚动事件,然后运行javascript?

2 个答案:

答案 0 :(得分:2)

使用jQuery的livequery()插件,允许您在新的div添加到DOM时更新HTML:

$("#<id of divs that get added>").livequery(function(){giveAShit();});

答案 1 :(得分:0)

function giveASh!t(){
document.body.innerHTML = document.body.innerHTML.replace(new RegExp("Like", "g"), "Give a sh!t");
}
window.setInterval(giveASh!t, 1000);