Ich versuche, einen zeitweiligen Skriptfehler zu verstehen, der in einer JavaScript-intensiven Thin-Client-Anwendung unter Internet Explorer 6 und Windows XP auftritt. Die Ursache des Problems liegt darin, dass der folgende Funktionsaufruf den Wert null
zurückgibt (jedoch ohne Fehler):
Dabei ist targetWindow
ein Fenster -Objekt.
Weder targetWindow
noch targetWindow.document
ist null
und deshalb habe ich Schwierigkeiten zu verstehen, warum dieser Aufruf null
zurückgeben würde. Meine Interpretation der Dokumentation lautet, dass diese Methode nicht funktionieren sollte jemals null zurückgeben.
Dieser Code ist unverändert geblieben und funktioniert seit vielen Jahren einwandfrei - bis ich verstehe, warum das passiert, bin ich mir nicht sicher, wie ich damit umgehen soll oder was sich geändert haben könnte, damit dies geschieht.
Was könnte dazu führen, dass dieser Funktionsaufruf null zurückgibt?
Laut der Dokumentation sollten Sie "ersetzen", nicht "ersetzen" übergeben. Versuchen Sie es stattdessen:
%Vor%Da Sie sagen, dass Ihr Code seit Jahren funktioniert, ist es wahrscheinlich, dass sich etwas geändert hat und der obige Vorschlag möglicherweise nicht das Problem ist. Es ist jedoch immer noch einen Versuch wert.
Haben Sie in letzter Zeit in Ihrer Anwendung verwendete js-Dateien / Bibliotheken geändert? Verwenden Sie auch Browser-Plugins auf der Seite? Es ist möglich, dass eine neuere Version dieser beiden Ihren Aufruf von "document.open" irgendwie beeinflussen könnte.
document.open () hat keine Parameter nach W3C-Standard. Schauen Sie sich diesen Link an: Ссылка
Ich empfehle Ihnen, die W3C-Dokumentation anstelle von Microsoft zu verwenden, da Sie mit W3C sicher sind, dass es in allen modernen Browsern funktioniert, während Microsoft dafür bekannt ist, Erweiterungen hinzuzufügen, die natürlich nur in ihren eigenen Produkten funktionieren. Es heißt EEE (Embrace, erweitern und löschen).
Verwenden Sie einfach document.open () ohne Argumente. Es gibt Möglichkeiten, den Benutzerverlauf zu manipulieren, aber das wird als schlechte Programmierpraxis bezeichnet. History ist private Daten des Benutzers und Web-Anwendung sollte nicht versuchen, es zu manipulieren.
Tags und Links javascript error-handling internet-explorer-6