安装 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>
  • 将函数指针存储在一个变量中,并定义另一个函数来调用该变量。 下面的示例使用 onlick 事件关闭窗口:

    原始代码:
    <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月20日 - 修订: 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