Marianne35: window.open

Hy Liebe Mitglieder

Ich bräuchte ein kleines Skript ergänzt zu diesen
---------------------------
<input onClick="window.open('./smilies.php','Name','toolbar=no,status=no,menubar=no,width=95,height=145,left=600,top=250')" type="button" name="smilies" value=":-)" />
------------------------------
Vielleicht ist jemand so nett und schreibt es um

Ich hätte gerne das dieses geöffnete fenster vorne bleibt
z.B. wie bei Taskmanager(strg+alt+entf) der bleibt auch vorne egal wo mann im hintergrund drauf klickt.

das ist für mein gäste buch und da geht diese kleine fenster auf mit den smiles drin,

wenn man dann auf ein smile klickt übernimmt er es ins buch und das fenster verschwindet hinter die seite

und dann kann man kein zweites smile anklicken darum währe es für die Gäste nett wenn es vorne bleibt.

für eure bemühungen bedanke ich mich im vorraus

Marianne

  1. Hi Marianne,

    so wie Du es willst geht es vielleicht mit vielen Umwegen. Warum machst Du es nicht so, daß Du ein IFRAME nimmst und in dem das smilie.php lädst?

    Gruß

    Hans

  2. Liebe Marianne35,

    Vielleicht ist jemand so nett und schreibt es um

    wenn jemand Dir die Arbeit abnimmt, dann lernst Du ja nix dabei... Daher will ich Dir eine kleine Anleitung zur Selbsthilfe geben.

    <input onClick="window.open('./smilies.php','Name','toolbar=no,status=no,menubar=no,width=95,height=145,left=600,top=250')" type="button" name="smilies" value=":-)" />

    Ich schreibe den Javascript-Teil aus Deinem OnClick-Attribut einmal schöner leserlich (als wäre es aus einer externen Javascript-Datei):

    window.open('./smilies.php',  
                'Name',  
                'toolbar=no,  
                 status=no,  
                 menubar=no,  
                 width=95,  
                 height=145,  
                 left=600,  
                 top=250'  
                );
    

    Eine Anmerkung: Die Funktion open() gibt einen Wert (Referenz) zurück, mit dem man auf das Popup-Fenster zugreifen kann. Den sollte man nicht "verschwenden", sondern einer Variablen zuweisen. Das ist später einfacher, als den Fensternamen (in Deinem Fall "Name" - das zweite Argument in der Klammer) dafür zu benutzen.

    Vorschlag: var SmileyPopup = window.open('./smilies.php','Name','...');

    Ich hätte gerne das dieses geöffnete fenster vorne bleibt

    Das bedeutet, dass Du auf das Popup-Fenster den Fokus setzen musst. Dazu gibt es die Funktion focus(). Nach der Einfügung müsste also die focus()-Methode auf das Popup angewandt werden. Dazu müsste man wissen, wie und wo diese Einfügung aufgerufen wird, um dort im Anschluss den Fokus zurück auf das Popup zu setzen.

    Wenn Du das Popup-Fenster einer Variablen zugewiesen hast, dann kannst Du analog zu meinem Vorschlag "SmileyPopup.focus()" schreiben, damit das Fenster wieder in den Vordergrund geholt wird. Aber ohne Deinen Einfüge-Code näher zu kennen, bleibt mir nur zu raten.

    Hinweis: Wenn Du die Einfügefunktion im Popup-Fenster stehen hast, dann kannst Du mit "self" anstatt "mit SmileyPopup" auf das Popup-Fenster verweisen. Das geht so: self.focus()

    Liebe Grüße aus Ellwangen,

    Felix Riesterer.

    1. hi,

      Ich schreibe den Javascript-Teil aus Deinem OnClick-Attribut einmal schöner leserlich

      Das mag der Javascript-Interpreter aber nicht mehr schön finden, weil du hier

      window.open('./smilies.php',
                  'Name',
                  'toolbar=no,
                   status=no,

      beginnst ein Literal über die Zeilengrenze hinweg zu notieren, was Javascript so nicht erlaubt.

      (als wäre es aus einer externen Javascript-Datei)

      Das ändert daran auch nichts.

      Da müsstest du schon das Literal in der einen Zeile beenden, und mit dem in der nächsten Zeile neu geöffneten verknüpfen:

      window.open('./smilies.php',  
                  'Name',  
                  'toolbar=no,' +  
                  'status=no,' +  
                  'menubar=no,' +  
                  'width=95,' +  
                  'height=145,' +  
                  'left=600,' +  
                  'top=250'  
                  );
      

      gruß,
      wahsaga

      --
      /voodoo.css:
      #GeorgeWBush { position:absolute; bottom:-6ft; }
      1. Lieber wahsaga,

        Das mag der Javascript-Interpreter aber nicht mehr schön finden, weil du hier

        window.open('./smilies.php',
                    'Name',
                    'toolbar=no,
                     status=no,

        beginnst ein Literal über die Zeilengrenze hinweg zu notieren, was Javascript so nicht erlaubt.

        stimmt. Da war ich bei PHP...

        Liebe Grüße aus Ellwangen,

        Felix Riesterer.

    2. Liebe Marianne35,

      Vielleicht ist jemand so nett und schreibt es um
      wenn jemand Dir die Arbeit abnimmt, dann lernst Du ja nix dabei... Daher will ich Dir eine kleine Anleitung zur Selbsthilfe geben.

      <input onClick="window.open('./smilies.php','Name','toolbar=no,status=no,menubar=no,width=95,height=145,left=600,top=250')" type="button" name="smilies" value=":-)" />

      Ich schreibe den Javascript-Teil aus Deinem OnClick-Attribut einmal schöner leserlich (als wäre es aus einer externen Javascript-Datei):

      window.open('./smilies.php',

      'Name',
                  'toolbar=no,
                   status=no,
                   menubar=no,
                   width=95,
                   height=145,
                   left=600,
                   top=250'
                  );

      
      >   
      > Eine Anmerkung: Die Funktion open() gibt einen Wert (Referenz) zurück, mit dem man auf das Popup-Fenster zugreifen kann. Den sollte man nicht "verschwenden", sondern einer Variablen zuweisen. Das ist später einfacher, als den Fensternamen (in Deinem Fall "Name" - das zweite Argument in der Klammer) dafür zu benutzen.  
      >   
      > Vorschlag: `var SmileyPopup = window.open('./smilies.php','Name','...');`{:.language-javascript}  
      >   
      > > Ich hätte gerne das dieses geöffnete fenster vorne bleibt  
      > Das bedeutet, dass Du auf das Popup-Fenster den Fokus setzen musst. Dazu gibt es die Funktion focus(). Nach der Einfügung müsste also die focus()-Methode auf das Popup angewandt werden. Dazu müsste man wissen, wie und wo diese Einfügung aufgerufen wird, um dort im Anschluss den Fokus zurück auf das Popup zu setzen.  
      
      \---------------------------------------------------------------  
      Vielen dank für die Mühe Felix  
      wenn du mir jetzt die opens und focuse einsätzen könntest währe Lieb..........  
      \----------------------------------  
      Hier die Eingabe  
        
      <input class="button" type="submit" name="gesendet" value="eintragen" /> <input class="button" type="reset" name="reset" value="l&ouml;schen" /> <input onClick="window.open('./smilies.php','Name','toolbar=no,status=no,menubar=no,width=95,height=145,left=600,top=250')" type="button" name="smilies" value=":-)" />  
        
      hier ist mein kleines Fenster  
      UND JETZT DIE AUSGABE  
        
      <html>  
      <head>  
      <link rel="stylesheet" href="<?=$style ?>" type="text/css">  
      <script language="JavaScript">  
      function smilie(smilietext) {  
        opener.document.sms.text.value += smilietext+" ";  
        opener.sms.text.focus();  
      }  
      </script>  
      <title>Smilies :-)</title>  
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">  
      </head>  
        
      <body bgcolor="#FFFFFF" text="#000000">  
      <table width="84" border="0">  
          <?PHP  
              include\_once "gb\_smilies.php";  
              $smile=array\_unique($smilies);  
              $zaehler=0;  
              while (list($smilie, $bild) = each($smile)) {  
                if ($zaehler % 4 == 0) echo "<tr>";  
                  echo "<td><a href=\"javascript:smilie(' ".$smilie." ')\"><img src=\"".$smilie\_dir.$bild."\" title=\"".$smilie."\" alt=\"".$smilie."\" width=\"15\" height=\"15\" border=\"0\"></a></td>";  
                  if ($zaehler % 4 == 4) echo "</tr>";  
                $zaehler++;  
              }  
            if ($zaehler %4 != 4) echo "</tr>";  
          ?>  
      </table>  
      \----------------------  
      danke dir Marianne35  
        
      
      >   
      > Wenn Du das Popup-Fenster einer Variablen zugewiesen hast, dann kannst Du analog zu meinem Vorschlag "SmileyPopup.focus()" schreiben, damit das Fenster wieder in den Vordergrund geholt wird. Aber ohne Deinen Einfüge-Code näher zu kennen, bleibt mir nur zu raten.  
      >   
      > Hinweis: Wenn Du die Einfügefunktion im Popup-Fenster stehen hast, dann kannst Du mit "self" anstatt "mit SmileyPopup" auf das Popup-Fenster verweisen. Das geht so: `self.focus()`{:.language-javascript}  
      >   
      > Liebe Grüße aus [Ellwangen](http://www.ellwangen.de/),  
      >   
      > Felix Riesterer.
      
      1. Liebe Marianne35,

        ... aha. Schau mal Deinen Code genauer an:

        function smilie(smilietext) {
          opener.document.sms.text.value += smilietext+" ";
          opener.sms.text.focus();
        }

        Rate mal, was die letzte Zeile Deiner Funktion tut?

        Liebe Grüße aus Ellwangen,

        Felix Riesterer.

        1. Liebe Marianne35,

          ... aha. Schau mal Deinen Code genauer an:

          function smilie(smilietext) {
            opener.document.sms.text.value += smilietext+" ";
            opener.sms.text.focus();
          }

          Rate mal, was die letzte Zeile Deiner Funktion tut?

          Liebe Grüße aus Ellwangen,

          Felix Riesterer.

          Hy Felix ja sie hat einen focus, schreibe mir das bitte richtig
          ich check das nicht mein kleines fenster bleibt nicht vorn ich bin am verzweifeln.

          danke Marianne

          1. Liebe Marianne35,

            Hy Felix ja sie hat einen focus, schreibe mir das bitte richtig

            Nö. Ich gebe Dir einen Link zum Nachlesen: SELFHTML-Seite zu focus() Dies ist das SELF-Forum. Du verstehst "self"?

            ich check das nicht mein kleines fenster bleibt nicht vorn ich bin am verzweifeln.

            Du hast keine Ahnung von Javascript, gell? Dann überlegen wir einmal gemeinsam, was da vor Deinem "focus()" steht, denn da liegt der Hund begraben.

            Dazu muss man wissen, dass in Javascript grundsätzlich zwei Möglichkeiten bestehen, dem Computer zu sagen "nimm XYZ und tue damit abc!". Das kann so aussehen: abc(XYZ), oder so XYZ.abc(). Bei focus() geht es um letzteres. Um bei diesem Beispiel zu bleiben: XYZ.focus(). Um also ein beliebiges Fenster in den Vordergrund zu holen, muss ich nur den Fensternamen kennen (oder in einer Variablen gespeichert haben), um dann mit FensterName.focus() eben das Fenster, dessen Referenz in der Variablen namens "FensterName" abgelegt ist, in den Vordergrund zu bringen.

            Also schauen wir an, was da so vor Deinem focus-Aufruf steht (kann eine Buchstabenfolge mit Punkten dazwischen sein). Ein solcher Funktionsaufruf ist nämlich schon in Deiner Funktion drin! Den müssen wir nur noch auf Dein Popup-Fenster "umbiegen", denn bisher wird ja offensichtlich Dein Hauptfenster in den Vordergrund geholt...

            Also musst Du nur noch wissen, wie Du in Javascript Dein Popup-Fenster referenzierst (sprich, dem Script sagst, welches Fenster es denn jetzt anfassen soll). Da kommt mein vorheriges Posting wieder ins Spiel, besonders der Hinweis zum Schluss.

            Liebe Grüße aus Ellwangen,

            Felix Riesterer.

            1. Liebe Marianne35,

              Hy Felix ja sie hat einen focus, schreibe mir das bitte richtig
              Nö. Ich gebe Dir einen Link zum Nachlesen: SELFHTML-Seite zu focus() Dies ist das SELF-Forum. Du verstehst "self"?

              ich check das nicht mein kleines fenster bleibt nicht vorn ich bin am verzweifeln.
              Du hast keine Ahnung von Javascript, gell? Dann überlegen wir einmal gemeinsam, was da vor Deinem "focus()" steht, denn da liegt der Hund begraben.

              Dazu muss man wissen, dass in Javascript grundsätzlich zwei Möglichkeiten bestehen, dem Computer zu sagen "nimm XYZ und tue damit abc!". Das kann so aussehen: abc(XYZ), oder so XYZ.abc(). Bei focus() geht es um letzteres. Um bei diesem Beispiel zu bleiben: XYZ.focus(). Um also ein beliebiges Fenster in den Vordergrund zu holen, muss ich nur den Fensternamen kennen (oder in einer Variablen gespeichert haben), um dann mit FensterName.focus() eben das Fenster, dessen Referenz in der Variablen namens "FensterName" abgelegt ist, in den Vordergrund zu bringen.

              Also schauen wir an, was da so vor Deinem focus-Aufruf steht (kann eine Buchstabenfolge mit Punkten dazwischen sein). Ein solcher Funktionsaufruf ist nämlich schon in Deiner Funktion drin! Den müssen wir nur noch auf Dein Popup-Fenster "umbiegen", denn bisher wird ja offensichtlich Dein Hauptfenster in den Vordergrund geholt...

              Also musst Du nur noch wissen, wie Du in Javascript Dein Popup-Fenster referenzierst (sprich, dem Script sagst, welches Fenster es denn jetzt anfassen soll). Da kommt mein vorheriges Posting wieder ins Spiel, besonders der Hinweis zum Schluss.

              Liebe Grüße aus Ellwangen,

              Felix Riesterer.

              Heeeeeeeeeeeeeee Felix spiel nicht hier herum.

              <script language="JavaScript">
              function smilie(smilietext) {
                opener.document.sms.text.value += smilietext+" ";
                opener.sms.text.N A M E.focus();
              }
              </script>
              und warum bleibt das Fenster nicht wie bei dem Taskmanager vorn wenn ich dann im Gästebuch weiterschreibe der Taskmanager bleibt nähmlich vorn auch wenn ich auf ein dahinter liegendes Fenster schreibe jaaaaaaaaaaaa und du hast recht ich kenn mich damit nicht aus darum bitte ich dich nur das fertige scribt reinzuschreiben ich mache hier nur ein gästebuch und dann mache ich das zeug nie wieder also sei nett und spiel bitte nicht oberlehrer

              marianne35 und nicht 20 klar

              1. Liebe Marianne35,

                darum bitte ich dich nur das fertige scribt reinzuschreiben ich mache hier nur ein gästebuch und dann mache ich das zeug nie wieder

                schade, aber ok.

                also sei nett und spiel bitte nicht oberlehrer

                LOL! Das ist aber berufsbedingt nun einmal der Fall...

                Nimm halt mein Vorvorposting (da steht "self.focus()" !!) und schreibe es in Dein Script!

                marianne35 und nicht 20 klar

                Ich bin fast 33. Klar? Aber ich bin mir nicht zu schade, etwas dazuzulernen. Es würde mich dauern, wenn es bei Dir anders wäre, denn mit Deinen 35 gehörst Du (naja - eigentlich) noch nicht zum "alten Eisen". Oder möchtest Du Dir diesen Schuh anziehen?

                Wenn Du fertige Lösungen möchtest, dann poste doch in einem dieser Kiddie-Foren! Hier triffst Du nuneinmal auch Erwachsene, die (für Dich: leider) einen höheren Anspruch haben. Sorry, wenn ich Dir damit auf die Füße trete (oder auf die Nerven gehe... oder von mir aus auch beides!), aber es ist in diesem Forum die erklärte Philosophie, dass wir uns hier selbst helfen wollen und dazu Anregungen und Verständnishilfen hier erhalten.

                Liebe Grüße aus Ellwangen,

                Felix Riesterer.