簡體   English   中英

Javascript:有沒有辦法告訴div何時添加到元素?

[英]Javascript: Is there a way to tell when a div has been added to an element?

假設我在頁面上有一個第三方twitter小部件,只要有新的tweet,它就會不斷更新。 有什么方法可以確定何時將新的div添加到此小部件中? 是否有事件或我可以掛上的東西(可能在小部件的父div上)?

如果沒有,我該怎么做? 也許掛接到窗口小部件正在進行的ajax調用上? 我怎么做? 似乎螢火蟲似乎正在這樣做,但我不知道怎么做。

如果這是一個很好的解決方案,請不要ktow,但是您可以定期比較此div的內容。

首先給出最簡單的答案:我建議您檢查div是否在第二秒后存在(時間取決於許多因素-我確定您了解您網站的具體時間)。 在添加新元素(例如您的Twitter小部件)時,重要的是要了解每個元素(在您的情況下為“小部件”)都具有某些規格,這些規格與相似的(在表面上相似的)“小配件”相比可能有重大差異。

一個簡短的答案:“取決於第三方小部件”

對於中等答案:“如果您可以查看窗口小部件的創建方式,則可能可以找到一種與之對話的方法”

對於更長的答案:“創建與Twitter進行交流實際上並不困難,因此,如果您想了解這一點,我建議更加具體。”

希望這有幫助...

編輯:對窗口小部件一無所知,我可能會設置一個時間間隔,以通過使用javascript:setInterval()或setTimeout()來從客戶端向服務器發出請求...如果我有時間/資源,則希望有一個解決方案,其中您同時了解Twitter和小部件(如果您想考慮所做的事情,可以節省以后的時間)...

如果您使用的是任何一種現代瀏覽器,都可以使用DOM Mutation Events偵聽節點更改。 根據問題的描述,您可能正在尋找DOMNodeInserted 如果必須,您可以使用可怕的setTimeout()hack,但是總的來說,等待事件比旋轉等待事件更好。

這里是一些示例代碼,因為我很無聊:

var widget = document.getElementById('mywidget');
widget.addEventListener('DOMNodeInserted', function (e) {
  if (e.target.nodeName !== 'DIV') return;
  // do some other code here
}, false);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM