Fehler "Berechtigung verweigert" beim Lesen von Eigenschaften eines HTML-Anwendungsspeicherort-Objekts

Wichtig

Die Internet Explorer 11-Desktopanwendung wird für bestimmte Versionen von Windows 10 eingestellt und ab dem 15. Juni 2022 nicht mehr unterstützt.

Sie können mit dem Internet Explorer-Modus in Microsoft Edge weiterhin auf ältere Websites zugreifen, für die Internet Explorer erforderlich ist. Anleitung.

Die Internet Explorer 11-Desktopanwendung wird schrittweise an den schnelleren, sichereren Microsoft Edge-Browser umgeleitet und letztendlich über Windows Update deaktiviert werden. Deaktivieren von IE heute.

Dieser Artikel enthält viele Methoden zum Beheben der Fehlermeldung "Berechtigung verweigert", die auftritt, wenn Sie Eigenschaften des Location-Objekts in einer HTML-Anwendung (HTA) lesen.

Ursprüngliche Version:   Internet Explorer
Ursprüngliche KB-Nummer:   816885

Problembeschreibung

Wenn Sie bestimmte Eigenschaften des Location-Objekts in einer HTML-Anwendung (HTA) lesen, wird möglicherweise die Fehlermeldung "Berechtigung verweigert" angezeigt. Zu den relevanten Eigenschaften des Location-Objekts gehören:

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

Hinweis

Dieser Fehler kann nur auftreten, wenn Sie ein Skript für die automatische Konfiguration in den LAN-Einstellungen (Local Area Network) von Microsoft Internet Explorer verwenden.

Wenn Debugtools auf Ihrem Computer installiert sind, wird möglicherweise die folgende Fehlermeldung angezeigt:

Ein Laufzeitfehler ist aufgetreten. Möchten Sie debuggen? Zeile 12-Fehler: Berechtigung verweigert

Wenn Debugtools nicht auf Ihrem Computer installiert sind, wird möglicherweise die folgende Fehlermeldung angezeigt:

Im Skript auf dieser Seite ist ein Fehler aufgetreten. Zeile: 13 Char: 2 Fehler: Berechtigung verweigert Code: 0 URL: Möchten Sie die Ausführung von http://WebServer/FileName.hta Skripts auf dieser Seite fortsetzen?

Hinweis

Dieses Problem kann nur auftreten, wenn ihr Skript für die automatische Konfiguration den DIRECT-Wert aufweist.

Lösung

Um dieses Problem zu beheben, verwenden Sie eine der folgenden Methoden:

Hinweis

Die folgenden Methoden basieren auf dem Beispiel, das im Abschnitt "Schritte zum Reproduzieren des Verhaltens" dieses Artikels erwähnt wird. Daher können sich der Code und die Dateinamen in diesen Methoden von Ihrem Code und ihren Dateinamen unterscheiden.

  • Schreiben Sie einen Proxyserver in den Proxyservereinstellungen von Internet Explorer fest, anstatt ein Skript für die automatische Konfiguration zu verwenden, und drücken Sie dann F5, um das HTA im Browser zu aktualisieren.
  • Verwenden Sie einen Hostnamen anstelle eines vollqualifizierten Domänennamens (Fully Qualified Domain Name, FQDN), um auf den Pfad zum HTA zuzugreifen.
  • Verwenden Sie eine IP-Adresse, um auf das HTA zuzugreifen.
  • Fügen Sie die Website, auf die Sie zugreifen, zur Zone "Vertrauenswürdig" oder zur Zone "Eingeschränkt" hinzu.
  • Verwenden Sie das Location-Objekt nicht in Ihrem Code.
  • Klicken Sie hier, um das Kontrollkästchen "Alle Websites einschließen", die das Proxyserver-Kontrollkästchen umgehen, in den Sicherheitseinstellungen von Internet Explorer zu deaktivieren.

Schritte zum Reproduzieren des Verhaltens

  1. Starten Sie Internet Explorer.

  2. Klicken Sie im Menü Extras auf Internetoptionen.

  3. Klicken Sie auf der Registerkarte "Verbindungen" auf "LAN Einstellungen".

  4. Klicken Sie im Dialogfeld lan-Einstellungen (Local Area Network) auf das Kontrollkästchen "Skript für automatische Konfiguration verwenden". Stellen Sie sicher, dass keines der anderen Kontrollkästchen aktiviert ist.

  5. Geben Sie im Feld "Adresse" den Pfad zum Skript für die automatische Konfiguration ein.

  6. Verwenden Sie Editor, um eine Textdatei mit dem Namen "Default.hta" zu erstellen.

  7. Fügen Sie der Datei "Default.hta" den folgenden HTML-Code hinzu:

    <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. Verwenden Sie Editor, um eine Textdatei mit dem Namen Main.htm zu erstellen.

  9. Fügen Sie der Main.htm Datei den folgenden HTML-Code hinzu:

    <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. Platzieren Sie die beiden Dateien Default.hta und Main.htm in einem virtuellen Verzeichnis mit dem Namen HTARepro auf einem Webserver.

  11. Stellen Sie sicher, dass Sie anonymen Zugriff auf den Inhalt des virtuellen HTARepro-Verzeichnisses aktiviert haben.

  12. Geben Sie an einer Eingabeaufforderung den folgenden Befehl ein:

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

    Hinweis

    Ersetzen Sie WebServer dies durch den FQDN des webservers, den Sie verwenden.

  13. Klicken Sie in der HTA-Anwendung auf "Klicken Sie auf mich", um das Verhalten zu reproduzieren. Sie erhalten eine der Fehlermeldungen, die im Abschnitt "Symptome" dieses Artikels erwähnt werden.

References

Weitere Informationen finden Sie unter Einführung in HTML-Anwendungen (HTAs).