Error de denegación de permiso al leer las propiedades de un objeto HTML Application Location

Advertencia

Se ha programado la deshabilitación permanente de la aplicación de escritorio retirada y sin soporte de Internet Explorer 11 a través de una actualización de Microsoft Edge en ciertas versiones de Windows 10. Para obtener más información, consulte Preguntas frecuentes sobre la retirada de la aplicación de escritorio de Internet Explorer 11.

En este artículo se proporcionan muchos métodos para resolver el mensaje de error Permiso denegado que se produce si lee las propiedades del objeto Location que se encuentra dentro de una aplicación HTML (HTA).

Versión original: Internet Explorer
Número de KB original: 816885

Síntomas

Al leer ciertas propiedades del objeto Location que se encuentra dentro de una aplicación HTML (HTA), puede recibir un mensaje de error Permiso denegado . Las propiedades pertinentes del objeto Location incluyen:

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

Nota:

Puede observar este error solo si usa un script de configuración automática en la configuración de Red de área local (LAN) de Microsoft Internet Explorer.

Si las herramientas de depuración están instaladas en el equipo, puede recibir el siguiente mensaje de error:

Se ha producido un error en tiempo de ejecución. ¿Desea depurar? Error de línea 12: permiso denegado

Si las herramientas de depuración no están instaladas en el equipo, puede recibir el siguiente mensaje de error:

Se ha producido un error en el script de esta página. Línea: 13 Char: 2 Error: Permiso denegado Código: 0 DIRECCIÓN URL: http://WebServer/FileName.hta ¿Desea seguir ejecutando scripts en esta página?

Nota:

Puede observar este problema solo si el script de configuración automática tiene el valor DIRECT.

Solución

Para resolver este problema, use cualquiera de los métodos siguientes:

Nota:

Los métodos siguientes se basan en el ejemplo que se menciona en la sección Pasos para reproducir el comportamiento de este artículo. Por lo tanto, el código y los nombres de archivo de estos métodos pueden diferir del código y de los nombres de archivo.

  • Codifique de forma rígida un servidor proxy en la configuración del servidor proxy de Internet Explorer en lugar de usar un script de configuración automática y, a continuación, presione F5 para actualizar el HTA en el explorador.
  • Use un nombre de host en lugar de un nombre de dominio completo (FQDN) para acceder a la ruta de acceso al HTA.
  • Use una dirección IP para acceder al HTA.
  • Agregue el sitio web al que tiene acceso a la zona de confianza o a la zona restringida.
  • No use el objeto Location en el código.
  • Haga clic para desactivar la casilla Incluir todos los sitios que omiten el servidor proxy en la configuración de seguridad de Internet Explorer.

Pasos para reproducir este comportamiento

  1. Inicie Internet Explorer.

  2. En el menú Herramientas, haga clic en Opciones de Internet.

  3. En la pestaña Connections, haga clic en Configuración de LAN.

  4. En el cuadro de diálogo Configuración de red de área local (LAN ), haga clic para activar la casilla Usar script de configuración automática . Asegúrese de que ninguna de las demás casillas esté activada.

  5. En el cuadro Dirección , escriba la ruta de acceso al script de configuración automática.

  6. Use el Bloc de notas para crear un archivo de texto denominado Default.hta.

  7. Agregue el siguiente código HTML al archivo 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 el Bloc de notas para crear un archivo de texto denominado Main.htm.

  9. Agregue el siguiente código HTML al archivo 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 los dos archivos, Default.hta y Main.htm, en un directorio virtual denominado HTARepro en un servidor web.

  11. Asegúrese de que ha habilitado el acceso anónimo al contenido del directorio virtual HTARepro.

  12. Escriba el siguiente comando en un símbolo del sistema:

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

    Nota:

    Reemplace por WebServer el FQDN del servidor web que está usando.

  13. En la aplicación HTA, haga clic en Haga clic en mí para reproducir el comportamiento. Recibirá uno de los mensajes de error que se mencionan en la sección Síntomas de este artículo.

Referencias

Para obtener más información, consulte Introducción a las aplicaciones HTML (HTA).