我想知道如何通过JavaScript拦截DOM访问。是否有任何可用的工具或白皮书? (否则,我将需要写一个!)
拦截背后的想法与Web浏览器的安全模块有关。
谢谢。
最佳答案
最好的办法是使用DOM mutation events。有各种事件,例如DOMNodeInserted
,DOMNodeRemoved
,DOMAttrModified
等(请参阅上面链接的DOM事件规范)。有一个称为DOMSubtreeModified
的通用事件,会在任何单个DOM突变后触发;此事件冒泡,因此您可以在文档上设置一个侦听器,以通知该文档DOM的所有更改。
document.addEventListener("DOMSubtreeModified", function(evt) {
console.log("DOM mutation", evt);
}, false);
这些事件在最新的浏览器中受支持,但IE(8版及更高版本)和Opera除外,后者支持某些evenbts,但明显不支持
DOMSubtreeModified
。