安裝了 MS04-038 安全性更新程式之後,如果事件處理常式是設為直接參考 DOM 函式,Internet Explorer 將不會執行程式碼

文章翻譯 文章翻譯
文章編號: 887741 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

結論

安全性更新程式 834707 包含了一項變更,會改變 Internet Explorer 處理函式指標的方式。當事件處理常式直接指向「文件物件模型」(DOM) 函式時,就會發生這項功能變更。 本文將告訴您這個問題並提供數個其他可行方案。

徵狀

如果用戶端程式碼和直接設為 DOM 函式的事件處理常式相關聯,Microsoft Internet Explorer 不會執行用戶端程式碼。

發生的原因

MS04-038 安全性更新程式包含了一項變更,會改變 Internet Explorer 處理函式指標的方式。 當事件處理常式直接指向 DOM 函式時,就會發生這項功能變更:
on<event> = DOM function pointer

其他可行方案

如果要解決 Internet Explorer 這項功能變更的問題,請使用下列其中一個方法:
  • 使用 JavaScript 直接叫用函式:

    原來的程式碼:
    <A href=# onclick=window.close>Close this window</A>
    修正後的程式碼:
    <A href=# onclick="window.close()">Close this window</A>
  • 將函式指標儲存在變數中,然後定義另一個函式來叫用這個變數。下列範例使用 onclick 事件來關閉視窗:

    原來的程式碼:
    <A href=# onclick=window.close>Close this window</A>
    修正後的程式碼:
    <script>
    var my_funcptr = window.close;
    
    function FunctionPointerInvoker()
    {
        my_funcptr();
    }
    </script>
    <A href=# onclick="FunctionPointerInvoker()">Close this window</A>
    
    

狀況說明

這是原本設計的作法。

?考

如需有關 MS04-038 安全性更新程式的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
834707 MS04-038:Internet Explorer 的累積安全性更新程式

屬性

文章編號: 887741 - 上次校閱: 2004年12月27日 - 版次: 2.0
這篇文章中的資訊適用於:
  • Microsoft Internet Explorer 5.01
  • Microsoft Internet Explorer 5.5
  • Microsoft Internet Explorer (Programming) 6.0
關鍵字:?
kbtshoot kbprb KB887741
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com