Artigo: 887741 - Última revisão: sexta-feira, 17 de Dezembro de 2004 - Revisão: 2.0

O Internet Explorer não executa código quando um processador de eventos está configurado para referenciar directamente uma função do DOM depois de instalar a actualização de segurança MS04-038

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Expandir tudo | Reduzir tudo

Sumário

A actualização de segurança 834707 inclui uma alteração ao modo como o Internet Explorer processa apontadores para funções. Esta alteração de funcionalidade ocorre quando um processador de eventos aponta directamente para uma função do modelo de objectos de documento (DOM, Document Object Model). Este artigo descreve o problema e fornece várias formas de contornar o mesmo.

Sintomas

O Microsoft Internet Explorer não executa código do lado do cliente associado a um processador de eventos que esteja directamente configurado para uma função do DOM.

Causa

A actualização de segurança MS04-038 inclui uma alteração ao modo como o Internet Explorer processa apontadores para funções. Esta alteração de funcionalidade ocorre quando um processador de eventos aponta directamente para uma função do DOM.
on<event> = DOM function pointer

Como contornar

Para contornar esta alteração na funcionalidade do Internet Explorer, utilize um dos seguintes métodos:
  • Invocar directamente a função utilizando JavaScript:

    Código original:
    <A href=# onclick=window.close>Fechar esta janela</A>
    Código corrigido:
    <A href=# onclick="window.close()">Fechar esta janela</A>
  • Armazenar o apontador para função numa variável e definir outra função para invocar a variável. Os exemplos que se seguem utilizam o evento onclick para fechar uma janela:

    Código original:
    <A href=# onclick=window.close>Fechar esta janela</A>
    Código corrigido:
    <script>
    var my_funcptr = window.close;
    
    function FunctionPointerInvoker()
    {
        my_funcptr();
    }
    </script>
    <A href=# onclick="FunctionPointerInvoker()">Fechar esta janela</A>
    
    

Ponto Da Situação

Este comportamento ocorre por predefinição.

Referências

Para obter informações adicionais sobre a actualização de segurança MS04-038, clique no número de artigo que se segue para visualizar o artigo na base de dados de conhecimento da Microsoft (KB, Microsoft Knowledge Base):
834707  (http://support.microsoft.com/kb/834707/ ) MS04-038: Actualização de segurança cumulativa para o Internet Explorer

A informação contida neste artigo aplica-se a:
  • Microsoft Internet Explorer 5.01
  • Microsoft Internet Explorer 5.5
  • Microsoft Internet Explorer (Programação) 6.0
Palavras-chave: 
kbtshoot kbprb KB887741