2011-10-29 55 views
0

我正在爲fb遊戲添加一些額外信息給彈出框,隱藏一些無用的信息並運行一些定時器,以便您可以查看多久直到您必須執行某些操作即使你不在遊戲頁面上。 我的問題是,他們回去使用Ajax來改變頁面之間,我想知道如果我正在使用正確的方法來處理這個問題。 我跑,如果我是一個網頁,我想添加/刪除soemting上,我還沒有這麼做過,如果這是真的,我做我的東西,檢查一個setInterval的,代碼看起來是這樣的:替換使用ajax的頁面上的內容

function myFunction() { 
    if($(selector for some element I am looking for).length > 0 && $(selector for some item I add).length == 0) { 
     //do some stuff 
    } 
} 
setInterval("myFunction()",1000); 

這是從擴展的內容腳本處理ajax頁面更改的正確方法嗎? 如果有,還有更好的方法來查看我是否在正確的頁面上,或者如果我已經添加到此頁面,而不是進行選擇?

回答

2

您可以使用livequery jQuery插件趕上當一個頁面上創建新的元素:

$("#ajax-element").livequery(function({ 
    //ajax-element is created 
}); 

您還可以聽DOMSubtreeModified事件,當DOM改變時觸發:

document.addEventListener("DOMSubtreeModified", function(event){ 
    //something has changed, possibly ajax-element was added 
}); 

有還有更具體的DOMNodeInsertedIntoDocumentDOMNodeRemovedFromDocument事件。