Joachim: muss onError im für die ganze Seite gelten?

Beitrag lesen

hi,

Als Alternative gibt es allerdings, wie von dir erwähnt, die try
catch Anweisung. Diese funktioniert ab IE5, NE6, OP5 und fängt
die Fehler halt blockbasiert ab.

Ja, und das ist ja auch mein Problem... Es sollte auf möglichst allen Browsern laufen!

Schau Dir das mal an: hier soll per JS dem opener des Popups eine neue URL zugewiesen werden - falls Opener noch da ist. Die meisten Browser kennen die Eigenschaft closed, loesen also keinen Error aus. IE4 kennt sie jedoch nicht, ein Error wird ausgegeben.
In dieser Funktion wird der Error abgefangen und _nach_ der eigentlichen Anweisung wieder freigegeben. Dabei gibt es Unterschiede, ob Browser ein return false oder true brauchen, musst Du testen. Dieses Beispiel war, wie erwaeht, fuer IE4 gedacht.

Gruesse  Joachim

function opUrl(page) {
 onerror =  function(){
  alert("ups, leider haben Sie das andere Browserfenster schon geschlossen");
  return true;
    }
 if(opener && !opener.closed && opener.neufenster) {
  opener.top.content.location.href = page;
  self.close();
 }
 else alert("ups, leider haben Sie das andere Browserfenster schon geschlossen");
 onerror = function(){
  return false;
 }
}