簡體   English   中英

如何檢測dom的更改,沒有可區分的ID或類

[英]How to detect changes to dom with no distinguishable ids or classes

我正在努力修復我的Gmail谷歌Chrome擴展程序的錯誤。 我需要檢測何時顯示Rich Format欄,但所有id和類都被混淆了,我認為不可靠。

檢測消息畫布

this.canvas_frame_document.evaluate("//iframe[contains(@class, 'editable')]",
   this.canvas_frame_document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
   null);

並檢測富文本欄

this.canvas_frame_document.evaluate("//img[@command='+underline']",
    this.canvas_frame_document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
    null);

這適用於編寫新電子郵件等,因為畫布dom存在並因此可檢測。

但是,當單擊回復時,回復全部,或者轉發不起作用,因為dom是動態更改的,並且chrome.tabs.onSelectionChanged.addListener無法檢測頁面中的更改,就像我為Compose所做的那樣。

簡單的解決方案是使用jQuery.live()

如果你想保持硬核,那么你可以將你的檢查綁定到DOMNodeInserted事件,當一個新元素被添加到dom時觸發,或者如果它沒有捕獲它,那么更通用的DOMSubtreeModified事件在以任何方式修改dom時觸發。 有關活動的更多信息,請點擊此處

暫無
暫無

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

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