naledsoul: aktuellen iframeinhalt per buttonklick im neuen fenster

Es soll das aktuellen iframeinhalt per buttonklick im neuen fenster oder popup angezeigt werden.
Folgendes Problem: es muss der aktuelle link welcher per optionselect gewählt wurde im neuen fenster erscheinen also kann man nicht einen bestimmten link nähmen.

idee: per tag "name" zugreifen anstelle eines speziellen links.

Das Script sieht ca wie folgt aus:

<input value="Reload" onclick="Reload(); Reset()" type="button">
<select name="live" id="live" default="" onchange="window.open(this.options[this.selectedIndex].value,'MSelect')">

<option value="">Wähle...
 </option>

<option value="frame4.html">Option1
 </option><option value="frame9.html">Option2
 </option>

</select>
<br>

<iframe src="frame1.html" name="MSelect" id="MSelect" frameborder="0" height="418" scrolling="no" width="460">
 Sie können das nicht sehen, wenn ihr Browser keine iframes unterstützt.
</iframe>

info: bin script- noob, also am besten würde ich codeschnipsel finden!
Danke

  1. keine ideen oder versteht keiner was ich möchte? könnt ruhig fragen stellen!

    1. Hallo,

      keine ideen oder versteht keiner was ich möchte? könnt ruhig fragen stellen!

      Deine Beschreibung ist ziemlich unklar:

      Du hast einen iframe mit Inhalt, ok.
      Du hast ein Selectfeld mit URLs, die du anzeigen willst, ok.
      Du willst ein neues Fenster oder Popup aufmachen per Buttonclick, ok.

      Was soll im denn jetzt im neuen Fenster erscheinen:
      Der aktuelle Inhalt deines iframes?
      Die Seite mit dem ausgewählen URL? Aber was hat dann der iframe damit zu tun?

      Moderne Browser haben übrigens Popup-Blocker, weil die in der Regel nur nerven.

      Gruß, Don P

      1. Was soll im denn jetzt im neuen Fenster erscheinen:
        Der aktuelle Inhalt deines iframes?
        Die Seite mit dem ausgewählen URL? Aber was hat dann der iframe damit zu tun?

        richtig »» Der aktuelle Inhalt deines iframes?

        Die Seite mit dem ausgewählen URL?

        du hast es doch schon erfasst:
        die beiden sachen sind die gleichen die iframe url ist das selbe wie die ausgewählte url da ,das was man auswählt im iframe erscheint, was anderes wäre ja irgendwie unlogisch

        Moderne Browser haben übrigens Popup-Blocker, weil die in der Regel nur nerven.

        das weiß ich. ich meinte damit einen onclick popup diesen blockt nichts.

        sollte jetzt alles klar sein oder nicht?

        1. Hallo,

          richtig »» Der aktuelle Inhalt deines iframes?

          Die Seite mit dem ausgewählen URL?
          du hast es doch schon erfasst:
          die beiden sachen sind die gleichen die iframe url ist das selbe wie die ausgewählte url da ,das was man auswählt im iframe erscheint, was anderes wäre ja irgendwie unlogisch

          Unlogisch ist eher, dass dieselbe Seite sowohl im iframe als auch im Popup erscheinen soll... sonst noch irgendwo? Im Fernseher vielleicht, auf dem Handy... ;)

          Du kannst anscheinend einen neu ausgewählten URL im iframe anzeigen, aber nicht im Popup? Ist das dein Problem?

          Im Prinzip ist es einfach: Z.B. beim http://de.selfhtml.org/javascript/sprache/eventhandler.htm#onclick@title=click-Event des Buttons das neue <http://de.selfhtml.org/javascript/objekte/window.htm#open@title=Fenster öffnen> und dabei den im http://de.selfhtml.org/javascript/objekte/htmlelemente.htm#iframe@title=iframe geladenen URL übergeben.

          Dazu in der onclick-Funktion des Buttons folgendes notieren:

          this.iframeURL = document.getElementById("MSelect").src;  
          if (this.target) { this.target.src = iframeURL; }  
          else             { this.target = window.open(iframeURL); }
          

          Dadurch bekommt der Button zwei zusätzliche Eigenschaften namens iframeUrl und target, worin der anzuzeigende URL und das popup-Fenster gespeichert sind. Auf diese Weise werden keine globalen Variablen benötigt.

          Gruß, Don P

          1. Hallo,

            Bin heute etwas zerstreut, sorry.
            window.open() verlangt laut SELFHTML mindestens zwei parameter, also musst du dir noch einen Fensternamen ausdenken, z.B. so:

            this.iframeURL = document.getElementById("MSelect").src;  
            if (this.target) { this.target.src = iframeURL; }  
            else             { this.target = window.open(iframeURL,"coolesPopUp"); }
            

            (alles ungetestet, musste SELF machen)

            Die Fenstergröße in einem dritten Parameter noch mitzuliefern ist sicher auch kein Fehler.

            this ist in der Eventhandlerfunktion übrigens das DOM-Element selber, also der Button.

            Gruß, Don P

            1. Vielen Dank für die Hilfe, also in dem Onklick einbauen, in etwa so funktioniert es leider nicht.

              <input type="button" onclick="this.iframeURL = document.getElementById("MSelect").src;  
              if (this.target) { this.target.src = iframeURL; }  
              else             { this.target = window.open(iframeURL); }" value="Vollbild" />
              
              1. Vielen Dank für die Hilfe, also in dem Onklick einbauen, in etwa so funktioniert es leider nicht.

                Weißt du wo die JS Fehlermeldungen findest?

                Struppi.

                1. Weißt du wo die JS Fehlermeldungen findest?

                  nein weiß ich nicht. ist es den so richtig eingebaut wie ichs gemacht hab...?
                  würdest du es testen?

                  1. Weißt du wo die JS Fehlermeldungen findest?

                    nein weiß ich nicht.

                    http://lmgtfy.com/?q=fehlerkonsole

                    Struppi.

                    1. folgender fehler:

                      Fehler: syntax error
                      Zeile: 1, Spalte: 40
                      Quelltext:
                      this.iframeURL = document.getElementById(

                      kannst du es bitte testen?

                      1. Hallo,

                        folgender fehler:

                        Fehler: syntax error
                        Zeile: 1, Spalte: 40

                        Sagte ich doch. Und was steht da im JS-Code in der ersten Zeile als 40. Zeichen? Genau: Ein Anführungzeichen, und das darf da so nicht stehen. Genau das sagt dir ja die Fehlermeldung.

                        kannst du es bitte testen?

                        Hier ist *SELF*HTML (engl. self=selber), nicht programmiere-und-teste-für-mich-HTML

                        Du kennst anscheinend nicht mal die Grundlagen von JavaScript bzw. vom Programmieren, z.B. wie man Strings richtig notiert. Solche Grundlagen solltest du dir schon aneignen, sonst wird das nichts. Habe dir doch schon genügend Lesestoff verlinkt... Dann mal los!

                        Gruß, Don P

                        1. habe es so getestet

                            
                          <input type="button"  
                                 value="Vollbild"  
                                 onclick = "this.iframeURL = document.getElementById('MSelect').src;  
                                            if (this.target) { this.target.src = iframeURL; }  
                                            else             { this.target = window.open(iframeURL,'Name');}"  
                          />
                          

                          es öffnet sich wie gewollt das fenster mit dem inhalt!
                          jedoch nur ein mal kommt das neue fenster beim klick dnach ist der button wirkungslos und
                          es öffnet sich immer nur der eine erste link nicht das per select ausgwählte aktuelle link /iframe

                          1. Hallo,

                            es öffnet sich wie gewollt das fenster mit dem inhalt!

                            Na also.

                            jedoch nur ein mal kommt das neue fenster beim klick dnach ist der button wirkungslos und

                            Sagte ich doch. Bitte dort zu Ende lesen, und dann nochmal:

                            this.target.src = iframeURL; ist falsch, falsch, falsch und nochmal FALSCH!
                            Obwohl ich es zuerst so geschrieben habe, ist und bleibt es FFAALLSSCCHH!

                            Mein Gott, wenn du schon nicht lesen oder mitdenken willst und alles vorgekaut haben musst, so:
                            this.target.location.href = iframeURL;
                            ist es statt dessen vielleicht richtig. Bitte SELBER TESTEN.

                            es öffnet sich immer nur der eine erste link nicht das per select ausgwählte aktuelle link /iframe

                            Ja, es erscheint mit meinem Code nur derselbe Inhalt wie im iframe. Das wolltest du doch.
                            Wie du ihn zuerst mit dem Selectfeld dort hineinbugsierst, hast du ja fast selber rausbekommen, nämlich mit dem onclick-Handler des Selectfelds.

                            Gruß, Don P

                            1. Ja, es erscheint mit meinem Code nur derselbe Inhalt wie im iframe. Das wolltest du doch.
                              Wie du ihn zuerst mit dem Selectfeld dort hineinbugsierst, hast du ja fast selber rausbekommen, nämlich mit dem onclick-Handler des Selectfelds.

                              es öffnet sich nur die wie oben im code beschriebene frame1.html nicht die anderen welche per slect ausgewäöhlt werden. also die frame4.html und frame9.html .
                              irgendwie hat sich nciht geändert mit dem location zusatz. woran kann  das liegen? muss das script unbedingt zum laufen bekommen :(

                              es sieht nun so aus:

                              <input type="button"  
                                     value="Vollbild"  
                                     onclick = "this.iframeURL = document.getElementById('MSelect').src;  
                                                if (this.target) { this.target.location.href = iframeURL; }  
                                                else             { this.target = window.open(iframeURL,'Name');}"  
                              />
                              

                              danke für deine hilfe hoffe wir bekommens hin finaly

                              1. Hallo,

                                es öffnet sich nur die wie oben im code beschriebene frame1.html nicht die anderen welche per slect ausgewäöhlt werden. also die frame4.html und frame9.html .

                                Die anderen werden ausgewählt und erscheinen auch im <iframe id='MSelect' ...>?

                                Wenn ja, dann sollte es auch mit dem Button funktionieren.
                                Wenn es trotzdem nicht funktioniert, weiß ich nicht weiter. Denke da stimmt etwas mit deinem iframe nicht. Habe selber noch nie einen benutzt. iframes und Popups mag ich nicht :( sowas braucht doch kein Mensch.

                                Poste doch mal den ganzen Code. Vielleicht weiß es jemand anders.

                                muss das script unbedingt zum laufen bekommen :(

                                Dafür, dass es so wichtig ist, hast du dir aber ganz schön Zeit gelassen. Ist das denn eine Hausaufgabe oder was?

                                Gruß, Don P

                                1. ja das original sieht in etwa so aus  wie oben dargestellt.
                                  alles funktioniert mit dem select usw.

                                  leider wirkt es nicht.
                                  die schwierigkeit ist ja, dass es keinen bestimmten link gibt zum öffnen der seite im neuen fenster per button klick , sondern immer das aktuelle per select ausgewählte ist.

                                  kann man da nichts machen?

                                  1. Hallo,

                                    ja das original sieht in etwa so aus  wie oben dargestellt.

                                    Ja, "so in etwa" sehe ich das in meiner Kristallkugel, Mensch! Aber leider sind keine Details zu erkennen. Wie soll ich da sehen, wo der Fehler liegt?

                                    alles funktioniert mit dem select usw.

                                    leider wirkt es nicht.

                                    *Was* genau wirkt nicht? Was sagt die Fehlerkonsole?

                                    die schwierigkeit ist ja, dass es keinen bestimmten link gibt zum öffnen der seite im neuen fenster per button klick , sondern immer das aktuelle per select ausgewählte ist.

                                    Nein, das ist nicht schwer: "das aktuelle per select ausgewählte" sollte ja im iframe geladen sein. Angeblich ist das der Fall, aber ich glaub's dir nicht.

                                    kann man da nichts machen?

                                    Mit so wenig Information von dir nicht. Meine Kristallkugel ist wie gesagt zu unscharf.

                                    Gruß, Don P

                                    1. lol dann leg mal die Kugel weg und guck auf die Fakten mein freund ^^

                                      mit "wirkt nicht" meinte ich das Vollbild script funzt nicht wie es soll, welches per klick auf den button das besagte neue fenster mit dem aktuellen per select ausgewählten inhalt öffnen soll. es öffnet egal auf welchen select ich mich befinde immer das frame1.html (siehe unten)

                                      <input value="Reload" onclick="Reload(); Reset()" type="button">  
                                      <select name="live" id="live" default="" onchange="window.open(this.options[this.selectedIndex].value,'MSelect')">  
                                        
                                      <option value="">Wähle...  
                                       </option>  
                                        
                                      <option value="frame4.html">Option1  
                                       </option><option value="frame9.html">Option2  
                                       </option>  
                                        
                                      </select>  
                                      <br>  
                                        
                                      <iframe src="frame1.html" name="MSelect" id="MSelect" frameborder="0" height="418" scrolling="no" width="460">  
                                       Sie können das nicht sehen, wenn ihr Browser keine iframes unterstützt.  
                                      </iframe>
                                      

                                      ein fehler direkt gibt es nicht aus,da es ja eine funktion macht aber die falsche, wie oben schon erwähnt ,funktioniert der button nur 1 mal also nur 1 klick ist möglich .

                                      und es wird immer das gleiche fenster geöffnet. frame1.html

                                      1. Hallo,

                                        lol dann leg mal die Kugel weg und guck auf die Fakten mein freund ^^

                                        Ich fass' es nicht, was soll das? Das ist doch *exakt* derselbe Schrott, den du schon im ersten Posting stehen hast. Meinst du, die Sache korrigiert sich von selber, wenn man nur ein bisschen darüber redet?

                                        ein fehler direkt gibt es nicht aus,da es ja eine funktion macht aber die falsche,

                                        <input value="Reload" onclick="Reload(); Reset()" type="button">

                                        Natürlich gibt das Fehler aus:
                                        Eine Funktion namens "Reload" gibt es nicht, und auch keine Funktion namens "Reset", die du beide onclick ausführen lassen willst. Das gibt ganz sicher mindestens eine Fehlermeldung spätestens beim Klicken auf den Button.

                                        wie oben schon erwähnt ,funktioniert der button nur 1 mal also nur 1 klick ist möglich .

                                        Der Button funktioniert so überhaupt nicht, denn eine Funktion namens "Reload" gibt es nicht, und auch keine Funktion namens "Reset", die du beide onclick ausführen lassen willst.

                                        es öffnet egal auf welchen select ich mich befinde immer das frame1.html (siehe unten)

                                        Im iframe ist von Anfang an frame1.html geladen:

                                        <iframe src="frame1.html" name="MSelect" id="MSelect" frameborder="0" height="418" scrolling="no" width="460">  
                                         Sie können das nicht sehen, wenn ihr Browser keine iframes unterstützt.  
                                        </iframe>
                                        

                                        Daran ändert sich auch nichts, wenn du im Selectfeld etwas auswählst, den dann passiert nur das:
                                        onchange="window.open(this.options[this.selectedIndex].value,'MSelect')"

                                        Damit wird höchstens ein Fenster geöffnet mit dem ausgewählten URL. Dachte, du wollest das Fenster mit dem Button öffnen, nicht mit dem Selectfeld. Mit dem Selectfeld wolltest du doch des Inhalt des iframe ändern, oder nicht?

                                        So langsam fühle ich mich von dir verarscht :(

                                        Don P

                                        1. du verstehst paar sachen falsch der reloadbutton hat damit ncihts zutun der ist seperat und das dazugehörige script hab ich bewusst weggelassen...

                                          ja ich will das fenster mit dem button öffnen das obige beispiel ist nur nochmal da um dir zu zeigen was frame1.html ist.

                                          mfg
                                          Nakedsoul

              2. Hallo,

                Vielen Dank für die Hilfe, also in dem Onklick einbauen, in etwa so funktioniert es leider nicht.

                <input type="button" onclick="this.iframeURL = document.getElementById("MSelect").src;

                if (this.target) { this.target.src = iframeURL; }
                else             { this.target = window.open(iframeURL); }" value="Vollbild" />

                  
                Hast du die Fehlerkonsole inzwischen gefunden? Dort wird sicher ein Syntaxfehler in der erste Zeile angemeckert, weil du falsche Anführungzeichen in deinem String benutzt. Wenn man innerhalb einer Zeichenkette Anführungzeichen benutzt, "müssen diese wie folgt  \"[maskiert](http://)\" werden, oder man benutzt wie folgt 'andere' als außen".  
                  
                So wäre es schon besser:  
                ~~~javascript
                  
                <input type="button"  
                       value="Vollbild"  
                       onclick = "this.iframeURL = document.getElementById('MSelect').src;  
                                  if (this.target) { this.target.src = iframeURL; }  
                                  else             { this.target = window.open(iframeURL,'Name');}"  
                />  
                
                

                Abgesehen von den Anführungszeichen wird der Code aber so auch nicht funktionieren, denn die Zeile
                if (this.target) { this.target.src = iframeURL; }
                ist fehlerhaft: this.target speichert eine Referenz auf ein [ref:self812;javascript/objekte/window.htm@title=window-objekt], und window hat keine Eigenschaft src. Statt dessen muss man den neuen URL über [ref:self812;javascript/objekte/location.htm@title=window.location...] setzen.

                Abgesehen davon sollte man solche Eventhandler besser in eigene Funktionen auslagern, siehe <http://de.selfhtml.org/html/attribute/eventhandler.htm#notieren@title=Event-Handler notieren>.

                Gruß, Don P

        2. Hallo,

          Moderne Browser haben übrigens Popup-Blocker, weil die in der Regel nur nerven.
          das weiß ich. ich meinte damit einen onclick popup diesen blockt nichts.

          nur weil das eine verbreitete Defaulteinstellung ist, muss das nicht überall so sein.
          Mich hat zum Beispiel oft gestört, dass der Popup-Blocker von Firefox praktisch wirkungslos ist, weil er in einem kurzen Zeitfenster nach einem Klick Popups doch zulässt. Das sind aber geschätzte 95% aller Popups. Also habe ich ihn etwas restriktiver eingestellt. Und ich glaube nicht, dass ich der einzige bin, der das tut.

          sollte jetzt alles klar sein oder nicht?

          Hmm, nö, leider nein.

          So long,
           Martin

          --
          why the heck do you jerk think, that wir ein doppelposting nicht bemerken, wenn you zwischendurch the sprache wechselst?
            (wahsaga)
          1. Und ich glaube nicht, dass ich der einzige bin, der das tut.

            doch bist du den 95% der besucher sind keine Programmierer freaks wie du

            sollte jetzt alles klar sein oder nicht?

            Hmm, nö, leider nein.

            wenn du nicht helfen willst oder nicht das simpelste verstechen willst lass es sein und behalt deine unnützen Kommentare für dich.

            1. Hallo,

              Und ich glaube nicht, dass ich der einzige bin, der das tut.
              doch bist du den 95% der besucher sind keine Programmierer freaks wie du

              sollte jetzt alles klar sein oder nicht?
              Hmm, nö, leider nein.
              wenn du nicht helfen willst oder nicht das simpelste verstechen willst lass es sein und behalt deine unnützen Kommentare für dich.

              Zitat #906

              Ciao,
               Martin

              --
              Eine Nonne kommt in den Himmel. An der Pforte fragt Petrus: "Wer bist du?" - "Ich bin die Braut Jesu." Petrus stutzt einen Moment, ruft dann nach hinten: "He Freunde, habt ihr schon gehört? Der Juniorchef will heiraten!"