Calocybe: "Zugriff verweigert" - wie fängt man diesen Fehler ab?

Beitrag lesen

Hallo Stefan!

Meine Frage nun: Gibt es eine Möglichkeit, per Javascript von einem Frame aus zu erfahren, ob man auf einen anderen Frame zugreifen kann? Das Skript würde dann zunächst prüfen, ob es auf den anderen Frame überhaupt zugreifen kann, bevor eine Fehlermeldung des Browsers alle weiteren Funktionen "lahmlegt". In anderen Programmiersprachen gibt es ja den TRY-Befehl - so etwas würde mir sehr weiterhelfen.

Sowas schoenes wie try gibt's in JS (noch) nicht, aber etwas umstaendlicher kommst Du zu einem aehnlichen Ergebnis. Auf http://developer.netscape.com/docs/manuals/js/client/jsref/handlers.htm#1120097 ist die window.onerror Eigenschaft beschrieben. Wenn Du einfach die Fehlermeldungen unterdruecken willst, setze diese Eigenschaft auf null, wie dort beschrieben. Willst Du aber ueber den Fehler informiert werden, schreibst Du eine Handlerfunktion und setzt die dort ein (
  window.onerror = mein_error_handler;  // OHNE Klammern an der Funktion!
). Die wird dann augenblicklich aufgerufen, wenn ein Fehler auftritt. Im Prinzip brauchst Du nur eine Variable setzen, um Dir zu merken, dass ein Fehler auftrat, und diese Variable nach der anfaelligen Aktion abzufragen. Nicht vergessen, true zurueckzugeben, sonst werden die Fehler trotzdem noch angezeigt.

So long