Erro negado por permissão ao ler propriedades de um objeto HTML Application Location

Aviso

O aplicativo da área de trabalho desativado e sem suporte do Internet Explorer 11 está programado para ser desativado permanentemente por meio de uma atualização do Microsoft Edge em certas versões do Windows 10. Para obter mais informações, consulte Perguntas frequentes sobre a desativação do aplicativo de área de trabalho do Internet Explorer 11.

Este artigo fornece muitos métodos para que você resolva a mensagem de erro Permissão negada que ocorre se você ler propriedades do objeto Location que está dentro de um HTA (aplicativo HTML).

Versão original: Internet Explorer
Número de KB original: 816885

Sintomas

Ao ler determinadas propriedades do objeto Location que está dentro de um aplicativo HTML (HTA), você poderá receber uma mensagem de erro de permissão negada . As propriedades relevantes do objeto Location incluem:

  • Location.href
  • Location.hostname
  • Location.reload

Observação

Você só poderá notar esse erro se usar um script de configuração automática nas configurações de LAN (Rede de Área Local) do Microsoft Internet Explorer.

Se as ferramentas de depuração estiverem instaladas no computador, você poderá receber a seguinte mensagem de erro:

Ocorreu um erro de runtime. Deseja Depurar? Erro da linha 12: permissão negada

Se as ferramentas de depuração não estiverem instaladas no computador, você poderá receber a seguinte mensagem de erro:

Ocorreu um erro no script nesta página. Linha: 13 Char: 2 Erro: permissão negada Código: 0 URL: http://WebServer/FileName.hta você deseja continuar executando scripts nesta página?

Observação

Você só poderá notar esse problema se o script de configuração automática tiver o valor DIRECT.

Resolução

Para resolve esse problema, use qualquer um dos seguintes métodos:

Observação

Os métodos a seguir baseiam-se no exemplo mencionado nas Etapas para reproduzir a seção de comportamento deste artigo. Portanto, o código e os nomes de arquivo nesses métodos podem ser diferentes do código e dos nomes de arquivo.

  • Código rígido de um servidor proxy nas configurações do servidor Proxy da Internet Explorer em vez de usar um script de configuração automática e pressione F5 para atualizar o HTA no navegador.
  • Use um nome de host em vez de um FQDN (Nome de Domínio Totalmente Qualificado) para acessar o caminho para o HTA.
  • Use um endereço IP para acessar o HTA.
  • Adicione o site que você está acessando à zona Confiável ou à zona restrita.
  • Não use o objeto Local em seu código.
  • Clique para limpar a caixa Incluir todos os sites que ignoram a caixa marcar do servidor proxy nas configurações de segurança do Explorer da Internet.

Etapas para reproduzir o comportamento

  1. Inicie o Internet Explorer.

  2. No menu Ferramentas, clique em Opções da Internet.

  3. Na guia Connections, clique em Configurações de LAN.

  4. Na caixa de diálogo Configurações de LAN (Rede de Área Local), clique para selecionar a caixa Usar script de configuração automática marcar. Verifique se nenhuma das outras caixas de marcar está selecionada.

  5. Na caixa Endereço, digite o caminho para o script de configuração automática.

  6. Use o Bloco de Notas para criar um arquivo de texto chamado Default.hta.

  7. Adicione o seguinte código HTML ao arquivo Default.hta:

    <html>
        <head>
            <title>HTA Location.href bug reproduction</title>
            <HTA:APPLICATION ID="oBugRepro" APPLICATIONNAME="BugRepro">
                <SCRIPT LANGUAGE="JavaScript">
                    function ShowFrame() {
                        var strLocation;
                        strLocation = top.fraTabs.location.href;
                    }
                </SCRIPT>
        </head>
        <frameset id="fstWorkAreaMain" name="fstWorkAreaMain" rows="40%,60%">
            <frame src="about:blank" id="fraTabs" name="fraTabs" APPLICATION="yes">
                <frame src="Main.htm" id="fraMain" NAME="fraMain" APPLICATION="yes">
        </frameset>
    </html>
    
  8. Use o Bloco de Notas para criar um arquivo de texto chamado Main.htm.

  9. Adicione o seguinte código HTML ao arquivo Main.htm:

    <HTML>
        <BODY style="background-color:gainsboro">
            <P>Main frame</P>
            <input id="cmdButton" type="button" onclick="top.ShowFrame()"
                value="Click me to reproduce the behavior"></input>
        </BODY>
    </HTML>
    
  10. Coloque os dois arquivos, Default.hta e Main.htm, em um diretório virtual chamado HTARepro em um servidor Web.

  11. Verifique se você habilitou o acesso anônimo ao conteúdo do diretório virtual HTARepro.

  12. Digite o seguinte comando em um prompt de comando:

    mshta.exe http://WebServer/HTARepro/Default.hta
    

    Observação

    Substitua WebServer pelo FQDN do servidor Web que você está usando.

  13. No aplicativo HTA, clique em Clicar em mim para reproduzir o comportamento. Você recebe uma das mensagens de erro mencionadas na seção Sintomas deste artigo.

Referências

Para obter mais informações, consulte Introdução a aplicativos HTML (HTAs).