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属性的新值和旧值。
全屏截图
当我仅按以下方式查找display
属性的更改时,我在Chrome中遇到了相同的问题。
attributeFilter: [ 'display' ]
如果我不按如下所述将其过滤到特定属性,它将起作用。
attributes: true