2010-09-03 114 views
2

我想知道如何攔截JavaScript訪問DOM。有沒有可用的工具或白皮書? (否則我需要編寫一個!)攔截JavaScript訪問DOM

攔截背後的想法是與Web瀏覽器的安全模塊有關。

謝謝。

+2

以任何足夠安全的方式阻止對DOM方法和屬性的訪問是不可能的。 JavaScript是一種高度動態的語言,可能有許多方法可以解決您可能會遇到的任何障礙。 – bobince 2010-09-03 09:45:31

+0

您需要深入挖掘瀏覽器代碼。 「* module *」意味着什麼,你有任何擴展API嗎? – Bergi 2012-08-02 23:47:42

回答

1

您可以做的最好的方法就是使用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

+0

我不認爲(或者至少不能想象)OP想要在JS中編寫他的安全模塊。 – Bergi 2012-08-02 23:48:44

+0

@Bergi:同意。我想我誤解了這個問題。 – 2012-08-02 23:59:04