我正在尝试编写我的第一个非常简单的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?
答案 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);