Benannte Browserfenster können nicht gefunden werden, wenn Internet Explorer als veröffentlichte Anwendung gestartet wird.
Warnung
Die eingestellte, nicht mehr unterstützte Desktop-Anwendung Internet Explorer 11 wurde durch ein Microsoft Edge-Update in bestimmten Versionen von Windows 10 dauerhaft deaktiviert. Weitere Informationen finden Sie unter Häufig gestellte Fragen zur Einstellung der Desktop-App von Internet Explorer 11.
Dieser Artikel hilft Ihnen, das Problem zu beheben, das das benannte Browserfenster nicht finden kann, wenn Internet Explorer als veröffentlichte Anwendung gestartet wird.
Ursprüngliche Produktversion: Internet Explorer 9
Ursprüngliche KB-Nummer: 2833316
Stellen Sie sich folgendes Szenario vor:
Die Benutzerkontensteuerung (User Account Control, UAC) ist deaktiviert.
Internet Explorer wird nicht aus der Desktopshellumgebung des Benutzers (Explorer.exe) gestartet. Dieses Szenario tritt häufig auf, wenn Internet Explorer auf eine der folgenden Arten gestartet wird:
- Über Terminaldienste RemoteApp
- Als benannte Anwendung auf der Registerkarte "Remotedesktopverbindung (mstsc.exe) Programme"
- Über Remotesitzungsdienste von Drittanbietern wie solche, die von Citrix bereitgestellt werden
Sie verwenden eine Webseite, die den Fensternamen programmgesteuert festlegt und dann ein neues Fenster von dieser Seite aus öffnet. In diesem Szenario wird ein leeres Fenster erstellt, und die ursprüngliche Seite bleibt unverändert. Sie erwarten jedoch, dass die ursprüngliche Seite geändert wird.
Das folgende HTML-Markupbeispiel veranschaulicht dieses Szenario. Das ursprüngliche Skript benennt das Fenster. Wenn die Seite geladen wird, erstellt das Skript dann ein neues Fenster. Das Skript im neuen Fenster versucht automatisch, die Erfolgstextzeichenfolge in die Seite einzufügen, von der aus das neue Fenster mit dem Namen des ursprünglichen Fensters erstellt wurde.
main.html
HTML<!DOCTYPE html> <html> <head> <script type="text/javascript"> function initScr() { self.name = "MainWindow" var ret = (window.open("second.html", "_blank")); } </script> </head> <body onload="initScr()"> main window <div id="mydiv"> original content </div> </body> </html>
second.html
HTML<!DOCTYPE html> <html> <head> <script type="text/javascript"> function initScr() { var ret = (window.open("", "MainWindow")); var el = ret.document.getElementById("mydiv"); el.innerHTML = "success"; } </script> </head> <body onload="initScr()"> second window </body> </html>
Um dieses Problem zu beheben, empfehlen wir, UAC zu aktivieren. Da das Problem auf Terminalservern auftritt und Internet Explorer als Shell ausgeführt wird, sollten Sie aus Sicherheitsgründen UAC aktiviert haben.
Weitere Informationen dazu, wann UAC in Windows Server deaktiviert werden soll, finden Sie unter Deaktivieren der Benutzerkontensteuerung (User Account Control, UAC) unter Windows Server.
Um dieses Problem zu beheben, können Sie auch mit einer temporären Seite beginnen, die das erste Fenster öffnet, und dann entweder die temporäre Seite schließen oder minimieren. Wenn Sie die Seite schließen, wird die temporäre Seite möglicherweise nicht automatisch geschlossen und erfordert möglicherweise einen Benutzereingriff, um es zu schließen.
Führen Sie im Beispielskript, das im Abschnitt "Symptome " erwähnt wird, die folgende Aktion aus:
Kommentieren Sie in main.html die Zeile aus, die self.name enthält, und erstellen Sie dann eine neue Seite, um das ursprüngliche erste Fenster (main.html) zu öffnen und die neue Seite zu schließen oder zu minimieren.
temp.html
HTML<!DOCTYPE html> <html> <body> <script language="javascript"> window.open("main.html", "MainWindow"); window.close(); </script> </body> </html>
Anstatt mit main.html zu beginnen, beginnen Sie jetzt mit der neuen Seite (temp.html).
Dieses Problem kann auch auftreten, wenn Internet Explorer mithilfe eines Administratorkontos gestartet wird. Standardmäßig sind Mitglieder der lokalen Administratorsicherheitsgruppe von UAC-Steuerelementen und Betriebseinschränkungen nicht betroffen.