Artigo: 946214 - Última revisão: sexta-feira, 28 de Dezembro de 2007 - Revisão: 1.0

Uma aplicação de HTML que utiliza o evento "onbeforeunload" fecha inesperadamente no Internet Explorer 7 quando clica em 'Cancelar'

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.

Nesta página

Expandir tudo | Reduzir tudo

Sintomas

Considere o seguinte cenário:
  • Criar uma aplicação de HTML (HTA).
  • A HTA utiliza o evento onbeforeunload .
  • Inicie a HTA no Windows Internet Explorer 7.
  • Quando fecha a HTA, receberá uma mensagem semelhante à seguinte:
    Tem a certeza de que pretende navegar a partir desta página?

    string value

    Prima ' OK ' para continuar ou Cancelar para permanecer na página actual.
    Nota Nesta mensagem, o string value de marcador de posição representa o valor da propriedade event.returnValue no código para a HTA.
Neste cenário, a HTA fecha conforme esperado quando clica em OK . No entanto, a HTA fecha inesperadamente quando clica em ' Cancelar ' .

Causa

Este problema ocorre devido a como o ficheiro Shdocvw.dll processa o método IOleCommandTarget::Exec .

Ponto Da Situação

A Microsoft confirmou que este erro ocorre nos produtos do Microsoft listados na secção "Aplica-se a".

Mais Informação

Este problema não ocorre quando inicia a HTA no Microsoft Internet Explorer 6.

Passos para reproduzir o problema

  1. Crie uma HTA.
  2. Insira o seguinte código a HTA:
    <html>
    
    <head>
                <TITLE>TEST</TITLE>
                  <HTA:APPLICATION ID="TEST"
                   APPLICATIONNAME="TEST"
                   BORDER="thick"
                   BORDERSTYLE="normal"
                   CAPTION="yes"
                   CONTEXTMENU="no"
                   MAXIMIZEBUTTON="no"
                   MINIMIZEBUTTON="yes"
                   SELECTION="no"
                   SHOWINTASKBAR="yes"
                   SINGLEINSTANCE="yes"
                   SYSMENU="yes"
                   VERSION="1.0"
                   WINDOWSTATE="normal"/>
    
    <script type="text/javascript">
    function closeIt()
      {
        event.returnValue = "string value";   // Any string value here forces a dialog box to appear before the window closes.
      }
    </script>
    </head>
    
    <body onbeforeunload="closeIt()">
    
    <a href="http://www.microsoft.com">Click here to navigate to www.microsoft.com </a>
    
    </body>
    
    </html>
  3. No Internet Explorer 7, inicie a HTA.
  4. Feche a HTA.
  5. Clique em ' Cancelar ' . Repare que a janela é fechada.

Referências

Para obter mais informações sobre HTAs, visite o seguinte Web site da Microsoft Developer Network (MSDN):
http://msdn2.microsoft.com/en-us/library/ms536496.aspx (http://msdn2.microsoft.com/en-us/library/ms536496.aspx)
Para mais informações sobre a propriedade event.returnValue , visite o seguinte site da Web MSDN:
http://msdn2.microsoft.com/en-us/library/ms534372.aspx (http://msdn2.microsoft.com/en-us/library/ms534372.aspx)

A informação contida neste artigo aplica-se a:
  • Windows Internet Explorer 7
Palavras-chave: 
kbmt kbtshoot kbcode kbbug KB946214 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 946214  (http://support.microsoft.com/kb/946214/en-us/ )