讀取 HTML 應用程式位置物件的屬性時,許可權遭到拒絕錯誤

本文提供許多方法,可讓您解決當您讀取 HTML 應用程式(HTA)內的 Location 物件的屬性時發生的「許可權遭到拒絕」錯誤訊息。

原始版本:  Ie
原始 KB 編號:  816885

徵狀

當您讀取 HTML 應用程式(HTA)內部的 Location 物件的特定屬性時,您可能會收到「許可權被拒絕」錯誤訊息。 Location 物件的相關屬性包括:

  • 位置 href
  • 位置。主機名稱
  • 位置。重載

注意

只有在 Microsoft Internet Explorer 的區域網路(LAN)設定中使用自動設定腳本時,您才會注意到此錯誤。

如果電腦上已安裝調試工具,您可能會收到下列錯誤訊息:

發生執行階段錯誤。 是否要進行調試? 第12行錯誤:許可權被拒絕

如果您的電腦未安裝調試工具,您可能會收到下列錯誤訊息:

此頁面上的腳本發生錯誤。 行:13個字元:2錯誤:許可權被拒絕的程式碼: 0 URL: http://WebServer/FileName.hta 是否要在此頁面上繼續執行腳本?

注意

只有當您的自動設定腳本具有直接值時,您才會注意到這個問題。

解決方案

若要解決此問題,請使用下列任何一種方法:

注意

下列方法是以再現本文行為的步驟一節所述的範例為基礎。 因此,這些方法中的程式碼和檔案名可能會與您的程式碼和檔案名有所不同。

  • 在 Internet Explorer 的 Proxy 伺服器設定中硬性編寫 proxy 伺服器,而不是使用自動設定腳本,然後按 F5 重新整理瀏覽器中的 HTA。
  • 請使用主機名稱代替完整功能變數名稱(FQDN)來存取 HTA 的路徑。
  • 使用 IP 位址來存取 HTA。
  • 將您要存取的網站新增至信任的區域或「限制區域」。
  • 請勿在您的程式碼中使用 Location 物件。
  • 按一下以清除 Internet Explorer 安全性設定中的 [包括略過 proxy 伺服器的所有網站] 核取方塊。

再現行為的步驟

  1. 啟動 Internet Explorer。

  2. 按一下 [工具] 功能表上的 [網際網路選項]。********

  3. 在 [連線] 索引標籤上,按一下 [局域網設定]。

  4. 在 [區域網路(LAN)設定] 對話方塊中,按一下以選取 [使用自動設定腳本] 核取方塊。 請確定未選取任何其他核取方塊。

  5. 在 [位址] 方塊中,輸入自動設定腳本的路徑。

  6. 使用 [記事本] 來建立名為 Default .hta 的文字檔。

  7. 將下列 HTML 程式碼加入到預設的 .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. 使用 [記事本] 建立名為 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. 在網頁伺服器上名為 HTARepro 的虛擬目錄中放置兩個檔案,預設為 .hta 和 Main.htm。

  11. 確定您已啟用匿名存取 HTARepro 虛擬目錄的內容。

  12. 在命令提示字元處輸入下列命令:

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

    注意

    取代為 WebServer 您所使用之網頁伺服器的 FQDN。

  13. 在 HTA 應用程式上,按一下 [按一下我] 以重現此行為。 您會收到本文的 [徵兆] 區段中所述的其中一項錯誤訊息。

參考

如需詳細資訊,請參閱HTML 應用程式(hta)簡介