Supahanz: Fenster per Link öffnen, wenn vorhanden nur fokussieren.

Genau das. Wie's scheint, wurde dieses Thema schon totgelabert und wahrscheinlich hat's jeder kapiert, nur ich wurde aus den anderen Beiträgen im Forum nicht schlau. Noch mal genau mein Problem:

Per Link wird ein Fenster geöffnet. Wenn jedoch ein zweites Mal auf den Link geklickt wird, soll sich die Seite nicht nochmal im gleichen Fenster öffnen, sondern nur die bereits geöffnete Seite fokussieren. Mit window.closed hab ich jetzt den ganzen Abend herumexperimentiert, hab's aber nicht hinbekommen.

Falls jemand eine Idee hat und die dann auch noch ausführlich beschreibt (bin kein Profi), wär das klasse.

MfG Hanz

  1. Hallo Hanz,

    Genau das. Wie's scheint, wurde dieses Thema schon totgelabert

    Deswehgen haette die Suche im Archiv auch sicher weitergeholfen...

    <script type="text/javascript">
    function openWindow()
    {
      myWindow = window.open('testurl.htm','testname','width=400,height=300,left=50,top=50');
      myWindow.focus()
    }
    </script>
    <a href="testurl.htm" onClick="openWindow();return false">Open Window</a>

    Dieter

    1. Hello Dieter,

      Deswehgen haette die Suche im Archiv auch sicher weitergeholfen...

      <script type="text/javascript">
      function openWindow()
      {
        myWindow = window.open('testurl.htm','testname','width=400,height=300,left=50,top=50');
        myWindow.focus()
      }
      </script>
      <a href="testurl.htm" onClick="openWindow();return false">Open Window</a>

      Das ist nicht das, was gefordert wurde. Dann würde die Seite neu geladen werden.

      <a href="testurl.htm" onClick="if (!f1 or f1.closed) {f1=window.open(...);};f1.focus();return false">Open Window</a>

      Das sollte es eher bringen.
      Das Problem ist, dass man auf f1.closed nicht zugreifen darf, wenn es f1 noch nicht gibt.

      Harzliche Grüße aus http://www.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau
      1. Das sollte es eher bringen.
        Das Problem ist, dass man auf f1.closed nicht zugreifen darf, wenn es f1 noch nicht gibt.

        Genau daran bin ich gescheitert.

        Was du grad vorgeschlagen hast (Tom), tut's aber auch ich nicht, es sei denn, ich hab den Code nicht richtig eingefügt...

      2. Hello,

        <a href="testurl.htm" onClick="if ((f1 !=true) or (f1.closed == true)) {f1=window.open(...hier ausfüllen...);};f1.focus();return false">Open Window</a>

        Dann versuch es nochmal so.
        Bei JavaScript muss man wohl vollständige bollesche Ausdrücke schreiben oder so...

        Harzliche Grüße aus http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau
        1. Hallo Tom.

          [...] bollesche Ausdrücke [...]

          "Ick bin ein Börlinna."

          Freundschaft!
          Siechfred

          --
          Nichts ist schwerer einzureißen als die Mauer in den Köpfen.
          1. Hello Siechfred,

            [...] bollesche Ausdrücke [...]

            "Ick bin ein Börlinna."

            Nöö, aber ich vertippe mich eben gerne
            Schlimm nur, dass es so immer noch nicht funktioniert und mir nicht in den Sinn kommt, wo der Fehler steckt. Der Debugger meckert immer eine fehlende Klammer an...

            Harzliche Grüße aus http://www.annerschbarrich.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            Nur selber lernen macht schlau
        2. hi,

          Bei JavaScript muss man wohl vollständige bollesche Ausdrücke schreiben oder so...

          ich würde eher vermuten, dass der versuchte zugriff auf f1, wenn es noch nicht existiert, das literal "undefined" zurückliefert - da dieser string aber nicht leer ist, ist !f1 auch nicht false.

          gruß,
          wahsaga

          --
          "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
          1. Hello,

            hi,

            Bei JavaScript muss man wohl vollständige boolesche Ausdrücke schreiben oder so...

            ich würde eher vermuten, dass der versuchte zugriff auf f1, wenn es noch nicht existiert, das literal "undefined" zurückliefert - da dieser string aber nicht leer ist, ist !f1 auch nicht false.

            Das habe ich in meinem zusätzlichen Test eigentlich dadurch ausgeschlossen, indem ich eine globale Variable namens "f1" angelegt habe und die mit false initialisiert habe.

            Es ging aber trotzdem nicht. Habe den Code jetzt leider gerade nicht hier. Das hat mich nämlich schon gestört, dass ich es nicht hinbekommen habe. Die Sache mit den gestapelten Popups auf einer Produktübersicht habe ich nach ähnlicher Weise mittels eines Arrays hinbekommen. Das funktioniert fehlerfrei.

            Harzliche Grüße aus http://www.annerschbarrich.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            Nur selber lernen macht schlau
          2. Hello,

            So funktioniert das jetzt:

            <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
                 "http://www.w3.org/TR/html4/transitional.dtd">
            <HTML>
            <HEAD>
              <TITLE>Window Open</TITLE>

            <script type="text/javascript">
              <!--
                f1 = false;

            function openWin()
                {
                  if ((f1==false) || (f1.closed == true))
                  {
                    //alert('ich öffne');
                    f1 = window.open('http://bitworks.de','test','width=800, height=600');
                  }
                  f1.focus();
                  return false;
                }
              //-->
              </script>

            </HEAD>

            <BODY>
              <a href="http://de.selfhtml.org" onclick="return openWin();">Open Window</a>
            </BODY>
            </HTML>

            Harzliche Grüße aus http://www.annerschbarrich.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            Nur selber lernen macht schlau
            1. Hi,

              So funktioniert das jetzt:

              Ätsch - zu spät! ;->

              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"!
  2. Hi,

    Falls jemand eine Idee hat und die dann auch noch ausführlich beschreibt (bin kein Profi), wär das klasse.

    Basierend auf dem bislang Geschriebenen:

    <title>WinTest</title>

    <script type="text/javascript" language="JavaScript"><!--
     function openWindow(url,name,pos,win) {
      if(win && !win.closed) {
       win.focus()
      } else {
       win=window.open(url,name,pos);
      }
      return win;
     }

    // Deklaration
     var myWindow;

    // Testausgabe
     aktuell=new Date();
     document.write(aktuell.getHours()+":"+aktuell.getMinutes()+":"+aktuell.getSeconds())+"<br>";
    //--></script>

    <a href="test3.htm" onClick="myWindow=openWindow(this.href,'testname','width=400,height=300,left=50,top=50',myWindow); return false">Open Window</a>

    myWindow wird deklariert, ist aber undefiniert (dürfte auch leer sein - egal), und wird der Funktion übergeben. Selbige prüft, ob es immer noch undefiniert und nicht closed ist (hier könnte man sauberer, z.B. mit typeof, arbeiten). Also wird fokussiet, oder geöffnet, sowie das (existierende oder neu zu schaffende) Objekt an myWindow zurückgegeben.

    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"!
  3. Also, jetzt tut's! Dank an alle Poster :).

    1. Mist, es tut nicht wirklich. Firefox macht das schon, aber der IExplorer mal wieder nicht... Woran kann das liegen?

      1. Hi,

        Woran kann das liegen?

        Da mein Beispiel auf dem IE 5.5 funktioniert (Quellcode einfach als "test3.htm" abspeichern), wirst Du vermutlich irgendwo einen Fehler gemacht 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. Da mein Beispiel auf dem IE 5.5 funktioniert (Quellcode einfach als "test3.htm" abspeichern), wirst Du vermutlich irgendwo einen Fehler gemacht haben.

          Nanu, ich hab doch vorhin schon ne Antwort gepostet, aber die ist wohl weg: Was ich schrieb:

          Toms Script hab ich erfolgreich mit Firefox zum Laufen gebracht. Deins aber aus irgendeinem Grund nicht. Werd ich jetzt aber noch mal versuchen, soll ja mit beiden Browsern tun...