1

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

到目前为止,这是我的 Javascript 函数;

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

据我了解,通过 HTML 搜索用我的替代方法替换“Like”的每个实例。这行得通。

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

我知道一旦初始页面完成加载,就会执行此代码,并且一旦执行它就不会重新运行。

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

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

4

2 回答 2

2

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

$("#<id of divs that get added>").livequery(function(){giveAShit();});
于 2012-12-08T02:02:52.470 回答
0
function giveASh!t(){
document.body.innerHTML = document.body.innerHTML.replace(new RegExp("Like", "g"), "Give a sh!t");
}
window.setInterval(giveASh!t, 1000);
于 2012-06-08T16:40:23.617 回答