technolust: iframe und src= mit variable verwenden

Hallo!

habe schon in diversen foren gesucht aber noch nicht das richtige gefunden. bin noch ziemlicher anfänger in javascript. vermutlich ist es eine einfache frage für euch:

Wie kann ich einem src-Befehl eine Variable übergeben?
Ich möchte in einem iframe variabel html-Dateien laden.
Die html-adresse ist in einer variable abgelegt.

hier ein auszug aus meinem script:

HEAD-BEREICH:
script type="text/javascript">
<!--
switch(window.name) {
   case "seite1":
      var new_page = "./resourcen/seiten/seite-1-1.html";
   break;
   case "seite2":
      var new_page = "./resourcen/seiten/seite-2-1.html";
   break;
   default:
      alert("Seite nicht gefunden!");
   break;
 }
// -->
</script>

BODY-BEREICH:
<table cellspacing="0" cellpadding="0" border = "0" width="100%">
 <tr>
   <td>
     <iframe src=new_page name="library_data">;
     </iframe>
   </td>
 </tr>
</table>

Er versucht nun die Seite "new_page" zu laden, aber nicht den Inhalt der Variable new_page den ich im header-Bereich belege. Was mache ich falsch?

Danke
Michael

  1. Hallo!

    Moin,

    Also, erstens solltest Du die Variable new_page global definieren.
    Weil so, wie das jetzt bei Dir ist, ist sie glaube ich nur innerhalb des jeweiligen case-Blocks gültig, danach wird sie wieder gelöscht. Ich darf mal:

    <script type="text/javascript">
    <!--

    var new_page = "";

    switch(window.name) {
       case "seite1":
          new_page = "./resourcen/seiten/seite-1-1.html";
       break;
       case "seite2":
          new_page = "./resourcen/seiten/seite-2-1.html";
       break;
       default:
          alert("Seite nicht gefunden!");
       break;
    }
    // -->
    </script>

    Damit hätten wir schonmal eine newpage-Variable, die auf der ganzen Seite gültig ist.
    So, wie Du's unten geschrieben hast, kannst Du die Variable allerdings nicht dem IFRAME Übergeben, da das IFRAME selbst von Deinen JavaScript-Variablen keine Ahnung hat. Die Lösung, die mir spontan dazu einfiele: Du schreibst Dein Iframe nicht wie gewohnt mit HTML, sondern mit JavaScript und der document.write-Methode, da kannst Du dann Deine Variable verwenden. Dies könnte dann so aussehen:

    <td>

    <script type = "text/javascript">
    <!--
    document.write('<iframe src="'+new_page+'" name="library_data">');
    //-->
    </script>

    </td>
    </tr>
    </table>

    Aufpassen auf die unterschiedlichen Anführungszeichen (' und ").

    Hoffe, das hilft Dir weiter,

    Gruesse,
    Joerg

    1. Hi Joerg,

      das hat ja super funktioniert....
      und wieder was gelernt.
      Danke dir vielmals!
      Michael