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

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

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

Síntomas

Cuando Lee determinadas propiedades del objeto Location que está dentro de una aplicación HTML (HTA), es posible que reciba un mensaje de error de Permiso denegado . Las propiedades relevantes del objeto Location son:

  • Location. href
  • Location. hostname
  • Location. Reload

Nota

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

Si las herramientas de depuración están instaladas en el equipo, es posible que reciba el siguiente mensaje de error:

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

Si las herramientas de depuración no están instaladas en el equipo, es posible que reciba el siguiente mensaje de error:

Se ha producido un error en el script de esta página. Línea: 13 Car: 2 error: Permiso denegado de permiso: 0 URL: http://WebServer/FileName.hta ¿desea continuar ejecutando scripts en esta página?

Nota

Puede que note 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 los pasos para reproducir la sección 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 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 la 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 a la HTA.
  • Use una dirección IP para obtener acceso a la HTA.
  • Agregue el sitio web al que está accediendo 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 de verificación 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 configuración de LAN.

  4. En el cuadro de diálogo Configuración de la red de área local (LAN) , haga clic para activar la casilla de verificación usar script de configuración automática . Asegúrese de que ninguna de las demás casillas de verificación 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 que se denomine 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 que se denomine Main.htm.

  9. Agregue el siguiente código HTML al archivo de 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. Ponga los dos archivos, default. HTA y Main.htm, en un directorio virtual que se denomine 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 el 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 mí para reproducir el comportamiento. Recibe 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 Introduction to HTML Applications (HTA).