Soeren: focus()-Fehler abfangen

Hallo zusammen,

Gibt es eine Moeglichkeit einen Javascript-Fehler abzufangen, wenn ein popup zu oeffen fehl schlug?

Zur Zeit oeffne ich ein neues Fenster ueber open() und setze dann einen focus() darauf, der den Fehler verursacht, wenn das Popup z.B. durch den Browser unterdrueckt wurde.

var new_win = window.open(...);
new_win.focus();

Nun moechte ich also sowas wie

if(!new_win_nicht_offen)
  new_win.focus();

erstellen um den Fehler abzufangen.

Danke fuer Hilfe,
Soeren

  1. Hallo.

    Ich denke dein Browser wird dir einen JS-Fehler anzeigen, mit dem Grund:
    ... ist undefiniert.

    Also musst du überprüfen, ob ein Fehler auftritt:
    http://de.selfhtml.org/javascript/beispiele/fehlerbehandlung.htm
    und
    http://de.selfhtml.org/javascript/beispiele/fehlerbehandlung_try_catch.htm
    könnten dir dabei helfen.

    Ich hoffe ich konnte helfen, H2O

    --
    Erst die FAQ's durchgehen: http://de.selfhtml.org/navigation/faq.htm.
    Dann im im </archiv/> suchen: http://suche.de.selfhtml.org/
    http://www.google.de/ nutzen und erst dann das Forum fragen.
    ie:% fl:| br:^ va:| ls:# fo:) rl:? n4:| ss:{ de:] js:) ch:? sh:( mo:? zu:|
    Infos: http://emmanuel.dammerer.at/selfcode.html
  2. Hallo,

    Gibt es eine Moeglichkeit einen Javascript-Fehler abzufangen, wenn ein popup zu oeffen fehl schlug?

    Zur Zeit oeffne ich ein neues Fenster ueber open() und setze dann einen focus() darauf, der den Fehler verursacht, wenn das Popup z.B. durch den Browser unterdrueckt wurde.

    var new_win = window.open(...);

    Hier speicherst du die Referenz auf das window-Objekt des Popup-Fensters in der Variablen new_win. Das Ganze funktioniert nur, wenn das Fenster auch geöffnet wurde.

    new_win.focus();

    Nun moechte ich also sowas wie

    if(!new_win_nicht_offen)
      new_win.focus();

    erstellen um den Fehler abzufangen.

    if (new_win)
       new_win.focus();

    Mathias

    1. Hi,

      if (new_win)
         new_win.focus();

      Leider ist new_win bei manchen PopUp-Blockern selbst dann gesetzt, wenn sie das Fenster blockiert haben. :-(

      Gruß, Cybaer

      --
      Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
      1. Hallo,

        if (new_win)
           new_win.focus();

        Leider ist new_win bei manchen PopUp-Blockern selbst dann gesetzt, wenn sie das Fenster blockiert haben. :-(

        Das hatte ich befürchtet. Welchen Typs ist new_win dann, hat es einen Wert? Würde also ein einfaches if (new_win && new_win.focus) weiterhelfen?
        Um welche Popup-Blocker handelt es sich genau? Ich würde das gerne mal austesten.

        Mathias

        1. Hi,

          Welchen Typs ist new_win dann, hat es einen Wert?

          Es ist das erwartete Fenster-Objekt - nur geht das Fenster eben nicht auf. :-(

          Würde also ein einfaches if (new_win && new_win.focus) weiterhelfen?

          AFAIR nein. 1 geht klar, 2 gibt dann Fehler, weil das Objekt nicht existiert. Aber der Fehler ist ja abfangbar ...

          Um welche Popup-Blocker handelt es sich genau?

          Oh je, soviel mache ich nicht mit PopUps. :) Ich kann nur noch sagen, daß es nicht der Mozilla-Blocker war. AFAIR war es ein nachrüstbarer Blocker für den IE.

          Da PopUps, wie jede JavaScript-Aktion, ohnehin nur von bedingter Relevanz sein sollten, habe ich das nicht weiter verfolgt. Ich hätte in diesem Fall aber den focus() ohnehin prinzipiell nicht von außen, sondern in der PopUp-Seite selbst gesetzt.

          Und wer fehlerhafte PopUp-Blocker verwendet, ist letztlich "selber schuld" [tm]. ;)

          Gruß, Cybaer

          --
          Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!