2012-06-08 39 views
1

我正在嘗試將我的第一個非常簡單的Google Chrome瀏覽器擴展程序寫成朋友的笑話。我希望它用「give a $ h1t」替換「like」的實例(我知道這看起來不成熟,但它只是爲了好玩)。如何爲Facebook重複執行Chrome擴展程序?

這是我目前使用的Javascript功能;

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

據我所知,它搜索HTML替換「我喜歡」的每個實例與我的替代品。這工作。

但是,我面臨的問題是,當您向下滾動新聞Feed時,新生成的內容不會被修改,任何新的「Like」實例都不會被修改。

我知道這個代碼是在初始頁面加載完成後執行的,一旦執行它就不會重新運行。

我玩過setInterval()方法,並導致一些奇怪的錯誤。我將它設置爲10秒的時間間隔,但它會影響頁面上其他內容(如聊天部分)的加載,並且也不太好,因爲頁面會像刷新一樣「口吃」。最終頁面將會中斷,而且不可能再向下滾動新聞源。

我的要點是;我怎樣才能得到這個JavaScript連續運行,以一種不錯的方式?也許更好的方法是聽滾動事件,然後運行JavaScript?

+2

爲你將jQuery的工作? – PitaJ

+1

這個問題與Facebook沒什麼關係。 – CBroe

+0

[是否有JavaScript/jQuery DOM更改偵聽器?](https://stackoverflow.com/questions/2844565/is-there-a-javascript-jquery-dom-change-listener) – Makyen

回答

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

** - 1 **不要給'window.setInterval'一個字符串! – Eric

+0

@Eric - 對不起的人 – PitaJ

+0

感謝您的建議,我放棄了。但是它有同樣的問題。最終,Facebook向下滾動時會放棄生成新內容。我開始認爲這是我正在使用的替換方法。當我刪除.innerHTML Facebook本身不會中斷,雖然「Like」實例不會更改... –

2

使用livequery()的jQuery插件,它允許新的div會添加到DOM您更新HTML:

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