marky: Fokus vom Popup-Fenster wieder auf das Parent-Fenster setzen

Hallo zusammen
1. Ich öffne ein Popup-Fenster für die Hintergrund-Musik. Jetzt habe ich aber User, die nicht begreifen, dass das originale Fenster im Hintergrund noch geöffnet ist. Für diese User möchte ich einen Link im Popup anbieten, welcher sie wieder zum Hauptfenster zurückführt. Ich kann den Fokus nicht von Anfang an wieder auf das Hauptfenster lenken, da die User die Hintergrundmusik nur über das Popup stoppen können.

2.Ich möchte, dass sich das Popup schliesst, wenn ich die Hauptseite schliesse.

Kann mir da jemand einen Tipp geben? Danke für die Antworten

marky

  1. Hi, marky!

    1. Fokus auf Hauptfenster
    var popup=window.open(...);  
    popup.blur();  
    window.focus();  
    
    

    Je nach Browser hilft zumindest eine von beiden Anweisungen.

    2.Ich möchte, dass sich das Popup schliesst, wenn ich die Hauptseite schliesse.

    Sicher. Schau mal in die <http://de.selfhtml.org/javascript/objekte/window.htm#open@title=Objekt-Referenz zu window.open> - da findest Du bei der Konfiguration einen Hinweis auf die Option "dependent".

    Gruß, LX

    --
    RFC 1925, Satz 2: Egal, wie fest man schiebt, ganz gleich, wie hoch die Priorität ist, man kann die Lichtgeschwindigkeit nicht erhöhen.
    1. Hallo LX

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

      popup.blur();
      window.focus();

      Dann setzt er den Fokus ja direkt auf das Hauptfenster. Er soll es aber erst tun, wenn ich das will (Link anklicken). 2. weiss ich ja nicht wie mein Hauptfenster heisst, um den Fokus darauf zu setzen, da ich von allen Seiten die Hintergrundmusik aufrufen kann!  
        
      
      > Sicher. Schau mal in die <http://de.selfhtml.org/javascript/objekte/window.htm#open@title=Objekt-Referenz zu window.open> - da findest Du bei der Konfiguration einen Hinweis auf die Option "dependent".  
      
      Habe ich bereits versucht. Da macht er aber gar nichts.  
        
      Liebe Grüsse  
        
      Caroline
      
      1. Hi,

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

        popup.blur();
        window.focus();

        
        > Dann setzt er den Fokus ja direkt auf das Hauptfenster. Er soll es aber erst tun, wenn ich das will (Link anklicken).  
          
        Ja dann rufst du die Methoden halt nicht direkt auf, sondern erst auf den Klick hin ...  
          
        
        > 2. weiss ich ja nicht wie mein Hauptfenster heisst, um den Fokus darauf zu setzen, da ich von allen Seiten die Hintergrundmusik aufrufen kann!  
          
        Dann liest du auf der verlinkten Seite weiter oben mal nach, was opener ist.  
          
        
        > Habe ich bereits versucht. Da macht er aber gar nichts.  
          
        Und die [Tipps für Fragende](/hilfe/charta.htm#tipps-fuer-fragende) liest du jetzt bitte auch noch mal - „funzt nich“ ist nämlich keine Problembeschreibung, sondern Bullshit.  
          
        MfG ChrisB  
          
        
        -- 
        RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
        
        1. Hallo ChrisB

          Ich merke schon, dass ich das Problem wahrscheinlich zu ungenau beschrieben habe. ;-) Sorry!!!

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

          popup.blur();
          window.focus();

          
          > Ja dann rufst du die Methoden halt nicht direkt auf, sondern erst auf den Klick hin ...  
            
          Ich öffne vom Hauptfenster ein Popup und setze den Fokus darauf, damit der User weiss, dass da jetzt ein neues Fenster ist. Im Popup möchte ich dann einen Link anbieten, der zur Hauptseite zurückführt, obwohl ich nicht weiss, wie das aufrufende Fenster heisst, da es da viele Ausgangspunkte gibt. Wenn ich in diesem Moment beim Klick auf den Link  
          `window.focus();`{:.language-javascript}  
          mache, setzt er nach meinem Verständnis, den Fokus auf das Popup, da ich mich ja im Moment in diesem befinde.  
          Vielleicht wäre es möglich das Fenster einfach zu minimieren. Diese Version finde ich aber nicht so schön, da ich das Fenster suchen muss, wenn ich die Musik dann doch noch ausschalten will!  
          Dazu kommt, dass ich über minimize oder minimieren nichts gefunden habe bei SELFHTML.  
            
          
          > > 2. weiss ich ja nicht wie mein Hauptfenster heisst, um den Fokus darauf zu setzen, da ich von allen Seiten die Hintergrundmusik aufrufen kann!  
          >   
          > Dann liest du auf der verlinkten Seite weiter oben mal nach, was opener ist.  
            
          Entschuldige, aber das begreife ich jetzt nicht. Unter diesem Link habe ich nichts zu meiner Frage gefunden! Ich kann den Namen meines Popups wählen, aber was hat das mit dem Ansprechen meines Hauptfensters zu tun? Ich will ja aus dem Popup mein Hauptfenster wieder in den Vordergrund holen?!  
            
          
          > > Habe ich bereits versucht. Da macht er aber gar nichts.  
          >   
          > Und die [Tipps für Fragende](/hilfe/charta.htm#tipps-fuer-fragende) liest du jetzt bitte auch noch mal - „funzt nich“ ist nämlich keine Problembeschreibung, sondern Bullshit.  
            
          Sorry nochmals, aber musst mich ja nicht gleich so anfahren. ;-) Wollte damit nur ausdrücken, dass das "dependent" bei mir keine Wirkung zeigt. Habe den Code, den ich zum Öffnen des Fensters brauche, jetzt mal noch angehängt:  
          ~~~javascript
          function HintergrundmusikStarten(){  
            Fenster = window.open("Hintergrundmusik.htm", "Hintergrundmusik", "width=500, height=500, dependent=yes, left=180, scrollbars=yes");  
            Fenster.focus();  
          }
          

          Vielleicht habe ich ja einen Schreibfehler, den ich nicht gefunden habe. Nach meiner Meinung müsste dies doch gehen!
          Ein weiteres Problem ist aber, dass das "dependent" z.B. vom IE nicht interpretiert wird. Da brauche ich ja sowieso eine andere Lösung. Ich kann das Popup leider nicht bei "unload" schliessen, da ich ja die Hintergrundmusik auf der ganzen Homepage will. Aber vielleicht kann ich ja beim schliessen des Fensters (nicht der Seite) auch noch ein weiteres Fenster schliessen lassen? Habe dazu aber nichts gefunden.

          Hoffe ich habe mich deutlicher ausgedrückt. Sorry nochmals für die Umstände.

          Liebe Grüsse

          marky

          1. Hi,

            Im Popup möchte ich dann einen Link anbieten, der zur Hauptseite zurückführt, obwohl ich nicht weiss, wie das aufrufende Fenster heisst, da es da viele Ausgangspunkte gibt.

            du brauchst auch nicht zu wissen, wie es heißt - nur welche "Funktion" es hat.

            1. weiss ich ja nicht wie mein Hauptfenster heisst, um den Fokus darauf zu setzen, da ich von allen Seiten die Hintergrundmusik aufrufen kann!
              Dann liest du auf der verlinkten Seite weiter oben mal nach, was opener ist.
              Entschuldige, aber das begreife ich jetzt nicht. Unter diesem Link habe ich nichts zu meiner Frage gefunden!

            Nein, aber die Erklärung zu opener steht im verlinkten Artikel gleich im ersten Abschnitt, "window: Allgemeines zur Verwendung". Lesen solltest du bitte schon selbst, wenn man dir schon das Stichwort anbietet.

            Ich kann den Namen meines Popups wählen, aber was hat das mit dem Ansprechen meines Hauptfensters zu tun?

            Alles.

            Sorry nochmals, aber musst mich ja nicht gleich so anfahren. ;-) Wollte damit nur ausdrücken, dass das "dependent" bei mir keine Wirkung zeigt.

            Die Symbole in der Erläuterung deuten darauf hin, dass der Parameter dependent nur von Firefox (ab Version 1) unterstützt wird. Wenn du einen anderen Browser verwendest (Opera, Safari, Chrome, IE), wird's damit wohl nichts. Das heißt aber auch, dass dependent für dich grundsätzlich keine Lösung sein kann, denn du kannst nicht davon ausgehen, dass deine Besucher alle Firefox verwenden.

            function HintergrundmusikStarten(){

            Fenster = window.open("Hintergrundmusik.htm", "Hintergrundmusik", "width=500, height=500, dependent=yes, left=180, scrollbars=yes");
              Fenster.focus();
            }

              
            Abgesehen von der Unsicherheit mit dependent reagieren manche Browser sehr unwirsch auf Leerzeichen im Parameterstring.  
              
            
            > Ein weiteres Problem ist aber, dass das "dependent" z.B. vom IE nicht interpretiert wird. Da brauche ich ja sowieso eine andere Lösung.  
              
            Sag ich doch. ;-)  
              
            
            > Ich kann das Popup leider nicht bei "unload" schliessen, da ich ja die Hintergrundmusik auf der ganzen Homepage will. Aber vielleicht kann ich ja beim schliessen des Fensters (nicht der Seite) auch noch ein weiteres Fenster schliessen lassen? Habe dazu aber nichts gefunden.  
              
            Nein. Die beiden Fälle kannst du nicht unterscheiden.  
            Du kannst höchstens dein Popup [regelmäßig](http://de.selfhtml.org/javascript/objekte/window.htm#set_interval) kontrollieren lassen, ob sein opener noch existiert und ansprechbar ist, andernfalls möge es sich bitte [selbst](http://de.selfhtml.org/javascript/objekte/window.htm#allgemeines) [schließen](http://de.selfhtml.org/javascript/objekte/window.htm#close).  
              
            Ciao,  
             Martin  
            
            -- 
            Zwei Freundinnen tratschen: "Du, stell dir vor, die Petra kriegt ein Kind!" - "Ich kann mir schon denken, von wem." - "Dann ruf sie mal schnell an, das würde ihr bestimmt weiterhelfen."  
              
            Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
            
            1. Hallo Der Martin

              Nein, aber die Erklärung zu opener steht im verlinkten Artikel gleich im ersten Abschnitt, "window: Allgemeines zur Verwendung". Lesen solltest du bitte schon selbst, wenn man dir schon das Stichwort anbietet.

              Ups, habe den Wink mit dem Zaunpfahl nicht verstanden, Sorry. Habe alles durchgelesen, aber irgendwie den ersten Link überlesen und nicht wahrgenommen. *peinlich, peinlich*

              Die Symbole in der Erläuterung deuten darauf hin, dass der Parameter dependent nur von Firefox (ab Version 1) unterstützt wird. Wenn du einen anderen Browser verwendest (Opera, Safari, Chrome, IE), wird's damit wohl nichts. Das heißt aber auch, dass dependent für dich grundsätzlich keine Lösung sein kann, denn du kannst nicht davon ausgehen, dass deine Besucher alle Firefox verwenden.

              function HintergrundmusikStarten(){

              Fenster = window.open("Hintergrundmusik.htm", "Hintergrundmusik", "width=500, height=500, dependent=yes, left=180, scrollbars=yes");
                Fenster.focus();
              }

              
              >   
              > Abgesehen von der Unsicherheit mit dependent reagieren manche Browser sehr unwirsch auf Leerzeichen im Parameterstring.  
                
              Ich habe die Leerzeichen weggelassen, aber es funktioniert trotzdem nicht. Nicht einmal mit Firefox!!! Wie Du schon gesagt hast, ist es nicht wirklich die richtige Lösung für mich, aber es wurmt mich schon ein bisschen, dass es einfach nicht geht. Hast Du noch einen anderen Tipp? Ansonsten lasse ich es im Moment noch sein, da ich es persönlich nicht so schön finde, wenn ich ein Fenster immer überprüfen muss, ob es noch offen ist. Baue es dann später aber vielleicht noch ein, wenn die Nachfrage wirklich noch besteht. Danke für die Links, werde es sicher ausprobieren, damit ich es einfach mal ausprobieren kann. Ist doch schön, wenn etwas funktioniert. ;-)  
                
              Danke für die Tipps. Den Fokus kann ich jetzt ohne Probleme auf das Hauptfenster setzen!!  
                
              Liebe Grüsse  
                
              marky
              
          2. Hi,

            Dann liest du auf der verlinkten Seite weiter oben mal nach, was opener ist.

            Entschuldige, aber das begreife ich jetzt nicht. Unter diesem Link habe ich nichts zu meiner Frage gefunden! Ich kann den Namen meines Popups wählen, aber was hat das mit dem Ansprechen meines Hauptfensters zu tun?

            Seite aufmachen, [strg]+[f], "opener" - lesen, verstehen, anwenden.

            MfG ChrisB

            --
            RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?