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

警告

已淘汰、不受支援的 Internet Explorer 11 傳統型應用程式已於特定 Windows 10 版本透過 Microsoft Edge 更新永久停用。 如需詳細資訊,請參閱 Internet Explorer 11 傳統型應用程式淘汰常見問題集 (英文)。

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

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

徵狀

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

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

注意事項

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

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

發生運行時錯誤。 您要偵錯嗎? 第 12 行錯誤:許可權遭拒

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

此頁面上的腳本發生錯誤。 行:13 字元:2 錯誤:許可權遭拒代碼:0 URL: http://WebServer/FileName.hta 您要繼續在此頁面上執行腳本嗎?

注意事項

只有在您的自動設定文稿具有 DIRECT 值時,您才會注意到這個問題。

解決方案

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

注意事項

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

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

重現行為的步驟

  1. 啟動 Internet Explorer。

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

  3. 在 [Connections] 索引標籤上,按兩下 [LAN 設定]

  4. 在 [ 局域網络 (LAN) 設定 ] 對話框中,按兩下以選取 [ 使用自動設定腳本 ] 複選框。 請確定未選取其他複選框。

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

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

  7. 將下列 HTML 程式代碼新增至 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. 使用記事本建立名為 Main.htm 的文字檔。

  9. 將下列 HTML 程式代碼新增至 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. 將 Default.hta 和 Main.htm 這兩個檔案放在網頁伺服器上名為 HTARepro 的虛擬目錄中。

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

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

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

    注意事項

    將取代 WebServer 為您所使用 Web 伺服器的 FQDN。

  13. 在 HTA 應用程式上, 按兩下 [我] 以重現行為。 您會收到本文一節中提及的其中一則錯誤訊息。

參考資料

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