schauan: Frames und Variablen

Hallo,
warum kann ich in einem Frameset nicht mit Variablen arbeiten - wo steckt mein Fehler?
Hier der vereinfachte code:
<HTML>
<HEAD>
<TITLE>Kopfinformation, Frameset</TITLE>
</HEAD>

// dieser Teil funktioniert
<SCRIPT LANGUAGE="JavaScript">
if (self == top) location.href = "fs_3.htm?"  + location.href
// dieser Teil funktioniert nicht?
var linkwert="kw200534/teile.htm"
</SCRIPT>

<frameset  border=1 frameborder=0  cols="20%,40%,40%">
<frame name="auswert" src="./auswert.htm" scrolling=auto MARGINWIDTH=1 MARGINHEIGHT=1 >
<! hier wird die Variable nicht berücksichtigt>
<frame name="Teile" src=(linkwert) scrolling=auto MARGINWIDTH=1 MARGINHEIGHT=1 >
<frame name="Blaetter" src="blank.htm" scrolling=auto MARGINWIDTH=1 MARGINHEIGHT=1 >
</frameset>
<NOFRAMES>
</NOFRAMES>
</HTML>

Grüße, Andre

  1. Hi,

    warum kann ich in einem Frameset nicht mit Variablen arbeiten - wo steckt mein Fehler?

    HTML ist keine Programmiersprache und kennt keine Variablen.

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    Schreinerei Waechter
    Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
    1. HTML ist keine Programmiersprache und kennt keine Variablen.

      ... und woher kennt es die ?? Hier wird im script eine definiert und im body der Link über die Variable gesetzt. Ist das im body kein html? Unterschied imho zu den frames ist, dass dort kein body vorhanden ist und der link nicht über href sondern src gesetzt wird.
      wieder gekürzt - funktioniert:
      <html>
      <script language="javascript">
      var linkwert="./fs_1.htm"
      </script>
      <body >
      <a href="#" onclick=location.href=(linkwert)>linkmich</a> <!'zinkwert als Textausgabe des Link>
      </body>
      </html>

      1. <a href="#" onclick=location.href=(linkwert)>linkmich</a> <!'zinkwert als Textausgabe des Link>

        onclick ist ein Eventhandler, dort wird eine Skriptsprache (i.d.R. JS) ausgeführt, drumherum ist HTML, dort kannst du mit der Variabel nichts anfangen. (so wie du es schreibst ist es auch ungültig, da außer Zahlen, alle Attributwerte in HTML mit Anführungszeichen umschlossen werden müssen).

        Struppi.

        1. Hallo allerseits,
          danke für die zahlreichen Tips. Ich habe es mit JS gelöst und meine Frames alle in einer Datei definiert:
          frames_5.htm

          <HTML>

          <HEAD>

          <TITLE>Auswertungssystem, Frameset</TITLE>

          </HEAD>

          <SCRIPT LANGUAGE="JavaScript">
          seite = location.search.substring(1, location.search.length)
             //beginnt mit "?" !
          if (seite=="") seite="blank1.htm";
          function tag(s) { document.write("<" + s + ">") }
          tag('FRAMESET border=2 frameborder=1 ROWS="100,*"')
          tag('frame name="head" src="kopf.htm" scrolling=no MARGINWIDTH=1 MARGINHEIGHT=1')
          tag('FRAMESET border=1 frameborder=0 COLS="30%,35%,35%"')
          tag('frame name="auswert" src="./auswert.htm" scrolling=auto MARGINWIDTH=1 MARGINHEIGHT=1')
          tag("FRAME NAME='Teile' SRC='" + seite + "' scrolling=auto MARGINWIDTH=1 MARGINHEIGHT=1")
          tag('frame name="Blaetter" src="blank2.htm" scrolling=auto MARGINWIDTH=1 MARGINHEIGHT=1')
          tag('/FRAMESET')
          tag('/FRAMESET')
          tag('NOFRAMES')
          tag('/NOFRAMES')
          </SCRIPT>

          </HTML>

          Das Nachladen geschiht nun nicht mehr von einem Frame zum nächsten sondern nur noch aus der Datei mit dem im Frame darzustellenden Inhalt.
          test.htm

          <HTML>
          <SCRIPT LANGUAGE="JavaScript"><!--
          if (self == top) location.href = "../frames_5.htm?"  + location.href
          //--></SCRIPT>
          <HEAD>
          <TITLE>Auswertungssystem, Index Teil</TITLE>
          </HEAD>
          <BODY BACKGROUND="../grafik/back01.jpg">
          <!....>
          Es hat geklappt.
          </BODY>
          </HTML>

  2. Hallo,
    warum kann ich in einem Frameset nicht mit Variablen arbeiten - wo steckt mein Fehler?

    <frame name="Teile"  src="nachlad.htm" scrolling=auto marginwidth=1 marginheight=1 >

    nachlad.htm
     .
     .
    <body text="#000000" bgcolor="#00FFFF" >
    <script type="text/javascript">
    location.href=parent.linkwert;
    </script>
    </body>
    .
    bzw.

    nachlad.htm
    <html><head></head>
    <body onload="location.href=parent.linkwert;" >
    </body></html>
    sollte funktionieren

    1. Hallo gast,

      nachlad.htm
      <html><head></head>
      <body onload="location.href=parent.linkwert;" >
      </body></html>
      sollte funktionieren

      Hast du das ausprobiert? Das sieht mir schwer nach einer Endlosschleife aus!

      So ganz trivial ist das Nachladen von Frames ja auch nicht:

      http://aktuell.de.selfhtml.org/artikel/javascript/dyn-frames/index.htm

      Gruß Gernot

      1. hallo Gernot ,

        Hast du das ausprobiert? Das sieht mir schwer nach einer Endlosschleife aus!

        mit
         * * * test.htm * * *
        <html><head><title>Kopfinformation, Frameset</title>
        <SCRIPT LANGUAGE="JavaScript">
         var linkwert="teile1a.htm" ;
        </SCRIPT>
        <frameset  border=1 frameborder=1 cols="20%,40%,40%">
         <frame name="auswert" src="auswert.htm" scrolling=auto marginwidth=1 marginheight=1 >
         <frame name="Teile"  src="nachlad.htm" scrolling=auto marginwidth=1 marginheight=1 >
         <frame name="Blaetter" src="blank.htm" scrolling=auto marginwidth=1 marginheight=1 >
         </frameset>
        <noframes>
        </noframes>
        </head></html>

        * * * nachlad.htm * * *
        <html><head><title></title></head>
        <body onload="location.href=parent.linkwert;" ></body>
        </html>

        * * * teile1a.htm * * *
        <html><head><title>teile1a</title></head>
        <body >
          teile1a-html
        <script language="JavaScript" type="text/javascript">
        <!--
        alert(parent.linkwert);
        //-->
        </script>
        </body></html>
        gab es in IE (6.0) und Mozzila Firefox 1.0.1 keine Fehler und auch keine javascript-Fehlermeldung(in javascript-Konsole)
        die alert-Ausgabe erschien auch bloss einmal
        mfg