Error de permiso denegado al leer las propiedades de un objeto De ubicación de aplicación HTML

Importante

La aplicación de escritorio Internet Explorer 11 está retirada y sin soporte a partir del 15 de junio de 2022 para determinadas versiones de Windows 10.

Todavía puede acceder a sitios antiguos heredados que requieren Internet Explorer con el modo Internet Explorer en Microsoft Edge. Obtenga más información.

La aplicación de escritorio Internet Explorer 11 se redirigirá progresivamente al explorador Microsoft Edge, más rápido y seguro. En última instancia, se deshabilitará a través de Windows Update. Deshabilite IE hoy.

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 KB original:   816885

Síntomas

Cuando lee 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 relevantes del objeto Location incluyen:

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

Nota

Es posible que observe 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: ¿Desea continuar ejecutando http://WebServer/FileName.hta scripts en esta página?

Nota

Es posible que observe 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 siguientes métodos se basan en el ejemplo mencionado 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.

  • Codificar de forma automática 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 obtener acceso a la ruta de acceso al HTA.
  • Use una dirección IP para obtener acceso 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 borrar la casilla Incluir todos los sitios que omiten el servidor proxy en la configuración de seguridad de Internet Explorer.

Pasos para reproducir el comportamiento

  1. Inicie Internet Explorer.

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

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

  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 otras casillas está activada.

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

  6. Use 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 Bloc de notas para crear un archivo de texto denominado Main.htm.

  9. Agregue el siguiente código HTML al Main.htm archivo:

    <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 WebServer por el FQDN del servidor web que está usando.

  13. En la aplicación HTA, haga clic en Hacer 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, vea Introduction to HTML Applications (HTAs).