HTML 애플리케이션 위치 개체의 속성을 읽을 때 사용 권한 거부 오류

경고

사용과 지원이 중단된 Internet Explorer 11 데스크톱 애플리케이션이 Microsoft Edge 업데이트를 통해 특정 버전의 Windows 10에서 영구적으로 비활성화될 예정입니다. 자세한 내용은 Internet Explorer 11 데스크톱 앱 지원 중단 FAQ를 참조하세요.

이 문서에서는 HTA(HTML 애플리케이션) 내에 있는 Location 개체의 속성을 읽을 때 발생하는 권한 거부 오류 메시지를 해결하기 위한 다양한 방법을 제공합니다.

원래 버전: 인터넷 Explorer
원래 KB 번호: 816885

증상

HTA(HTML 애플리케이션) 내에 있는 Location 개체의 특정 속성을 읽으면 권한 거부 오류 메시지가 표시될 수 있습니다. Location 개체의 관련 속성은 다음과 같습니다.

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

참고

이 오류는 Microsoft 인터넷 Explorer LAN(Local Area Network) 설정에서 자동 구성 스크립트를 사용하는 경우에만 발생할 수 있습니다.

컴퓨터에 디버깅 도구가 설치된 경우 다음 오류 메시지가 표시될 수 있습니다.

런타임 오류가 발생했습니다. 디버그하시겠습니까? 줄 12 오류: 사용 권한이 거부됨

컴퓨터에 디버깅 도구가 설치되어 있지 않으면 다음 오류 메시지가 표시될 수 있습니다.

이 페이지의 스크립트에서 오류가 발생했습니다. 줄: 13 문자: 2 오류: 권한 거부 코드: 0 URL: http://WebServer/FileName.hta 이 페이지에서 스크립트를 계속 실행하시겠습니까?

참고

자동 구성 스크립트에 DIRECT 값이 있는 경우에만 이 문제가 발생할 수 있습니다.

해결 방법

이 문제를 resolve 하려면 다음 방법 중 일부를 사용합니다.

참고

다음 메서드는 이 문서의 동작을 재현하는 단계 섹션에 언급된 샘플을 기반으로 합니다. 따라서 이러한 메서드의 코드와 파일 이름은 코드 및 파일 이름과 다를 수 있습니다.

  • 자동 구성 스크립트를 사용하는 대신 인터넷 Explorer 프록시 서버 설정에서 프록시 서버를 하드 코딩한 다음, F5 키를 눌러 브라우저에서 HTA를 새로 고칩니다.
  • FQDN(정규화된 도메인 이름) 대신 호스트 이름을 사용하여 HTA 경로에 액세스합니다.
  • IP 주소를 사용하여 HTA에 액세스합니다.
  • 신뢰할 수 있는 영역 또는 제한된 영역에 액세스하는 웹 사이트를 추가합니다.
  • 코드에서 Location 개체를 사용하지 마세요.
  • 인터넷 Explorer 보안 설정에서 프록시 서버 검사 우회하는 모든 사이트 포함 상자를 선택 취소하려면 클릭합니다.

동작을 재현하는 단계

  1. Internet Explorer를 시작합니다.

  2. 도구 메뉴에서 인터넷 옵션을 클릭합니다.

  3. Connections 탭에서 LAN 설정을 클릭합니다.

  4. LAN(Local Area Network) 설정 대화 상자에서 를 클릭하여 자동 구성 스크립트 사용 검사 상자를 선택합니다. 다른 검사 상자가 선택되지 않았는지 확인합니다.

  5. 주소 상자에 자동 구성 스크립트의 경로를 입력합니다.

  6. 메모장을 사용하여 Default.hta라는 텍스트 파일을 만듭니다.

  7. Default.hta 파일에 다음 HTML 코드를 추가합니다.

    <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. 메모장을 사용하여 이름이 Main.htm 텍스트 파일을 만듭니다.

  9. Main.htm 파일에 다음 HTML 코드를 추가합니다.

    <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. 두 파일 Default.hta 및 Main.htm 웹 서버의 HTARepro라는 가상 디렉터리에 배치합니다.

  11. HTARepro 가상 디렉터리의 콘텐츠에 대한 익명 액세스를 사용하도록 설정했는지 확인합니다.

  12. 명령 프롬프트에 다음 명령을 입력합니다.

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

    참고

    을 사용 중인 웹 서버의 FQDN으로 바꿉 있습니다 WebServer .

  13. HTA 애플리케이션에서 나를 클릭하여 동작을 재현합니다. 이 문서의 증상 섹션에 언급된 오류 메시지 중 하나가 표시됩니다.

참조

자세한 내용은 HTML 애플리케이션 소개(HTA)를 참조하세요.