[英]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.