Internet Explorer - Überprüfen Sie, wenn die Erlaubnis verweigert
Ich habe den folgenden code in Internet Explorer 8:
if (window.opener != null && window.opener.foo != null) window.opener.foo = bar;
Manchmal window.opener
eingestellt ist. Aber wenn der Benutzer öffnen ein popup, und navigieren Sie dann Weg, die versuchen, eine Eigenschaft auf, es sollte vermieden werden.
In Firefox und Chrome, das funktioniert, weil window.opener
wird null, sobald der user-exits bzw. aktualisiert das Fenster. Im IE jedoch window.opener
ist nicht null, und die window.opener.foo
gibt "Permission Denied" statt null. Deshalb window.opener.foo != null
zu true ausgewertet wird.
Wie bekomme ich dieses problem, welchem Wert entspricht "Permission Denied" beim Internet-Explorer?
InformationsquelleAutor Andrew Latham | 2012-10-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist der Scheck, den ich verwenden, in IE8:
Edit: wenn Sie möchten, anzeigen eine freundliche Fehler, können Sie versuchen, so etwas wie dieses:
Dadurch können Sie speziell behandelt den Fehler "Zugriff Verweigert", obwohl Sie nicht versteckt irgendeine andere mögliche Fehler.
wenn der Benutzer die Seite aktualisiert dann das Fenster geschlossen ist, wie es sein sollte. was versuchen Sie zu erreichen?
Im IE8 für mich, refresh führte es denken immer noch Fenster.opener. geschlossen war falsch. Ich versuche, auf eine Eigenschaft der übergeordneten Seite in einem popup zeigen eine Fehlermeldung, wenn die Erlaubnis verweigert wird (was der Fall wäre, wenn die übergeordnete Seite wurde aktualisiert oder verlassen wird). In Firefox/Chrome, kann ich erkennen, das mit der überprüfung, ob Fenster.opener ist null.
Im Grunde möchte ich in der Lage sein, um herauszufinden, wenn die Erlaubnis verweigert wurde, ohne dabei ein try-catch, das könnte alles sein.
siehe mein edit, es ist nicht schön aber es könnte die einzige Möglichkeit sein.
InformationsquelleAutor jbabey
Wenn Sie nicht haben Zugriff auf die Eigenschaften-Fenster.Auftakt im IE, dann übergabe an Objekt.keys() gibt eine Zeichenfolge mit der Länge 0.
Beispiel:
InformationsquelleAutor Chris Hilditch