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

Ich schreibe an einer Navigationshilfe, die von einem Frame auf einen Schwesterframe zugreift. Solange beide Seiten auf demselben Server liegen, ist auch alles schön und gut. Leider müssen einige Seiten auf einem anderen Server liegen. Dort ist dann naturgemäß der Zugriff verweigert.
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.
Kann jemand von Euch helfen?
Vielen Dank im voraus!
Stefan

  1. 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