Maik Fraatz: JavaScript variablen???

Ich bin da auf was gestoßen was ich nicht verstehe. Das bringt mich vielleicht nicht mit meinem problem weiter, aber es hilft mir die syntax von JavaScript besser zu verstehen.
Also meineserachtens ist etwas merkwürdiges passiert vielleicht seht ihr das anders.

Ich wollte einen kompletten Tabellenquellcode mit document.write im <script> bereich ausgeben lassen. Wer meine vorangegangenen posts nicht gelesen hat möchte ich bitten nicht nach dem warum zu fragen, denn ist jetzt zu umständlich zu erklären. ;-)

nun hat das aber nicht funktioniert und meine vermutung war das es einfach zuviel ist und document.write damit nicht klar kommt. also dachte ich mir machst du es mal ganz kompliziert und teilst den quellcode in mundgerechte happen packst diese jeweils in eine variable (bitte auch nicht fragen;-)) und lässt sie dann verknüpft mit document.write ausgeben.

nun wollte ich erstmal testen und habe nur den ersten teil also den <div> tag in eine variable gepackt um es dann als string ausgeben zu lassen um zu sehen ob alles gut is. genauer gesagt habe ich auch nur einen teil des <div> tags zugewiesen nicht den ganzen. dann habe ich document.write schwulst mit dem tabellenquellcode als kommentar gesetzt  und mir nur den teil des <div> tags ausgeben lassen. das ergebnis hat mich überrascht. anstatt den string wurde die gesamte tabelle komplett mit inhalt ausgegeben. ich muss dazu sagen, dass die tabelle noch ein zweites mal im <body> steht (bin halt grad am basteln;-)), aber die angezeigte tabelle stammte aus der variablen, da wenn ich die <div> parameter width und height in der variablen verändert habe hat sich die komplette tabelle geändert.

Zusatz: So sieht mein <div> tag aus:

<div id="Layer1" style="position:absolute; left:8px; top:-16px; width:133px; height:138px; z-index:1">

allerdings steht nur folgendes in der variablen:

<div id="Layer1" style="position:absolute; left:5px; top:20px;

und abgesehen davon müsste wie gesagt hinter dem <div> tag noch die ganze tabelle folgen.

is das so gedacht oder habe ich ein wunder geschaffen??

Gruß
Maik

  1. Hi,

    Ich bin da auf was gestoßen was ich nicht verstehe. [...]

    leider ist Deine Beschreibung auch nicht verständnisfördernd. Sie lautet sinngemäß: "Ich habe irgend etwas gemacht. Es sollte irgend etwas rauskommen. Statt dessen erhalte ich dies: ..."

    Die "irgend etwas" meine ich übrigens wörtlich, denn nichts anderes sagt Dein Posting aus. Was also hast Du gemacht, was hast Du erwartet und was statt dessen bekommen?

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Die "irgend etwas" meine ich übrigens wörtlich, denn nichts anderes sagt Dein Posting aus. Was also hast Du gemacht, was hast Du erwartet und was statt dessen bekommen?

      jetzt mal ausführlich:

      darf ich vorstellen mein ganz persönliches document.write, dass im <script> bereich meiner seite zuhause ist:

      (Bitte nach unten scrollen erklärung folgt, dann braucht ihr euch den schwulst nicht antun)

      document.write(' <div id="Layer1" style="position:absolute; left:8px; top:-16px; width:133px; height:138px; z-index:1"><h1><font size="+3" face="Smudger LET"><u>Hauptmen&uuml;</u></font></h1><table border="0" cellpadding="0" cellspacing="0"><tr><td height="50"><a href="index.htm" target="_top" onclick="MM_nbGroup('down','group1','Home','',1)" onmouseover="MM_nbGroup('over','Home','Buttons3/over-Buttons/home_over.png','',1)" onmouseout="MM_nbGroup('out')"><img src="Buttons3/home_button.png" alt="" name="Home" border="0" align="top" onload="" />.... (und immer so weiter)

      also im grunde steht in diesem document.wirte lediglich eine tabelle eingepackt in einem <div> layer und gefüllt mit schönen buttons für meine navi. Soweit so gut.
      Nun funzt das so nicht und ich dachte mir vielleicht is ja mein document.write ein wenig überfordert und habe mal ganz umständlich gedacht den gesamten tabellencode in mehrere teile zu splitten und jeden teil in eine variable zu schreiben und nachfolgend die variablen mit einem document.write zu verknüpfen.

      nun habe ich zum testen nur den ersten teil (<div id="Layer1" style="position:absolute; left:5px; top:20px;) in eine variable geschrieben und mir ausgeben lassen und das ergebnis war das mir nicht der string eins zu eins ausgegeben wurde sondern die gesamte tabelle im vollen umfang. wie ihr auch seht das document.write oben mit der gesamten tabelle als kommentar gesetzt also kann es da nicht herkommen. Allerdings steht die tabelle auch noch mal schön orgentlich gegliedert im body (wie gesagt bin halt am basteln). aber es kann nicht sein, dass es sich bei der angezeigten tabelle einfach nur um die body tabelle handelt, denn wenn ich die <div> parameter width und height (mittlerweile wieder entfernt) in der oben genannten variablen ändere, dann ändert sich auch entsprechend die tabelle.

      ich hoffe meine verwunderung ist nun verständlich.

      Gruß
      Maik

      1. Hi,

        document.write(' <div id="Layer1" style="position:absolute; left:8px; top:-16px; width:133px; height:138px; z-index:1"><h1><font size="+3" face="Smudger LET"><u>Hauptmen&uuml;</u></font></h1><table border="0" cellpadding="0" cellspacing="0"><tr><td height="50"><a href="index.htm" target="_top" onclick="MM_nbGroup('down','group1','Home','',1)" onmouseover="MM_nbGroup('over','Home','Buttons3/over-Buttons/home_over.png','',1)" onmouseout="MM_nbGroup('out')"><img src="Buttons3/home_button.png" alt="" name="Home" border="0" align="top" onload="" />.... (und immer so weiter)

        Du waehlst ' (Hochkomma) als Stringbegrenzung. Der String sollte also von dem ersten ' bis zum naechsten (unmaskierten) ' gehen.

        Dein String enthaelt also folgendes:
        ' <div id="Layer1" style="position:absolute; left:8px; top:-16px; width:133px; height:138px; z-index:1"><h1><font size="+3" face="Smudger LET"><u>Hauptmen&uuml;</u></font></h1><table border="0" cellpadding="0" cellspacing="0"><tr><td height="50"><a href="index.htm" target="_top" onclick="MM_nbGroup('

        Was mit dem Rest passiert weiss ich nicht, aber eigentlich solltes die Fehlerkonsole deines Browsers einen Syntaxfehler beanstanden.

        Falls du meherere Strings zusammenhaengen willst musst du + (Plus) dazwischen schreiben.

        mfG,
        steckl

  2. Hi there,

    is das so gedacht oder habe ich ein wunder geschaffen??

    Möglicherweise hast Du document.write _nach_ dem Laden der Seite aufgerufen? Dadurch wird nämlich das komplette Dokument überschrieben...