use*_*877 5 security mutation-observers
如果某个JS添加了一个突变观察者,其他JS是否有可能检测,删除,替换或更改该观察者?我担心的是,如果某个JS旨在破坏某个DOM元素而不被发现,那么JS可能希望摆脱观察该DOM元素的所有观察者。
小智 3
我不确定是否已安装观察者,但可以通过使用空函数重新观察感兴趣的节点来有效删除它们。如果存在的话,重新观察节点将替换以前的观察者功能。
var observerRef = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;
// Empty function here to replace whatever might have been installed on targets
var observer = new observerRef( function (mutations) { } );
// Could also be id=someid, etc
var targets = document.querySelectorAll('[class=someclassname]');
// Update/replace the observers on all the targets
for(var i = 0; i < targets.length; ++i) {
observer.observe(targets[i], { attributes: true, childList: true, characterData: false } );
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2212 次 |
| 最近记录: |