2013-02-07 156 views
0

目前在我的一個項目中,我劫持了div的appendChild方法並將其代理到我自己的一個方法中。這工作得很好,但是在劫持它之後,appendChild屬性出現在dom中,這種行爲只發生在IE7/IE8中。玩過開發人員工具之後,我發現如果單擊「顯示只讀屬性」,您可以看到所有HTMLDivElement原型的功能,但已修改的功能不再視爲只讀。我的問題是,是否有可能使該函數被再次視爲dom元素屬性?同樣對於獎勵積分,如果我可以繼續並像我剛剛那樣重寫那個函數,那麼首先只讀標誌的重點是什麼?是否可以使dom屬性只讀?

此外,只是爲了確保我得到它,我只看到這種行爲在IE7和IE8。

例如:

<div id="element1"> 
</div> 

var domElement = document.getElementById('element1'); 
domElement['appendChild'] = function newAppendChild() {....} 

但股利現在出現在DOM作爲

<div id="element1" appendChild="function newAppendChild() {...}"></div> 

的最終目標將是不具備的appendChild已經顯示出來。

+0

您可以發佈演示?我無法想象這種情況... – elclanrs

+1

你真的想要解決什麼問題?在我看來,你是在替換一個內置的方法,然後試圖使它成爲只讀的,當可能有更好的方法來處理你正在嘗試解決的實際問題時,你會陷入一片混亂。 – jfriend00

回答