Mutation观察者无法通过chrome扩展名监听属性更改

问题描述 投票:0回答:1

salesforce中有一个限制,这就是为什么我们要使用chrome扩展来监听dom中data-tabid属性的更改。

我已经创建了一个Chrome扩展程序,如下所示:

background.js

MutationObserver = window.MutationObserver || window.WebKitMutationObserver;
var observer = new MutationObserver(function (mutations, observer) {

    mutations.forEach(function (mutation) {
        let attributeName1 = mutation.attributeName;
        console.log("Attribute name " + mutation.attributeName +
            " changed to " + mutation.target[attributeName1] +
            " (was " + mutation.oldValue + ")");
    });
});

observer.observe(document, {
    childList: true,
    attributes: true,
    subtree : true,
    attributeOldValue: true,
    attributeFilter: ['data-tabid']
});

Manifest.json

{
"manifest_version": 2,
"name": "Dom Browser Plugin",
"version": "1.0.0",
"description": "Project Requirement.",
"permissions": [
  "https://*/*",
  "http://*/*",
  "tabs"
],
"background": {
  "scripts": [
    "background.js"
  ],
  "persistent": true
}
}

现在我已经授予了所有权限,以后我将对此进行更改,但是观察者无法捕获在刷新浏览器时发生的数据表更改。我需要捕获dom中嵌入的data-tabid属性的新值和旧值。

enter image description here

全屏截图

enter image description here

javascript google-chrome-extension mutation-observers
1个回答
0
投票

当我仅按以下方式查找display属性的更改时,我在Chrome中遇到了相同的问题。

attributeFilter: [ 'display' ]

如果我不按如下所述将其过滤到特定属性,它将起作用。

attributes: true
© www.soinside.com 2019 - 2024. All rights reserved.