schildi: output per document.write per js abändern

ich benötigte die möglichkeit, html, welches durch document.write ausgegeben wurde, nachträglich noch zu verändern, heisst, per document.getElementById(id).firstChild.nodeValue möchte ich einen neuen text in einen bereich schreiben.
dies scheint nicht zu funktionieren. wieso nicht?
gibt es irgendeine möglichkeit?

danke!

  1. Hi,

    dies scheint nicht zu funktionieren.

    was heißt das?

    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. was heißt das?

      das nix passiert.
      wenn ich noch, nachdem ich etwas so eingefügt habe,
      den inhalt per alert ausgebe, von der node die ich abgeändert hatte, gibt er den korrekten abgeänderten wert (der aber ja leider nicht angezeigt wird) zurück!

      1. Hi,

        was heißt das?
        das nix passiert.

        dann ist JavaScript abgeschaltet.

        wenn ich noch, nachdem ich etwas so eingefügt habe,
        den inhalt per alert ausgebe, von der node die ich abgeändert hatte, gibt er den korrekten abgeänderten wert (der aber ja leider nicht angezeigt wird) zurück!

        Von wem oder was wird er eigentlich nicht angezeigt?

        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. Hi,

          was heißt das?
          das nix passiert.

          dann ist JavaScript abgeschaltet.

          nein nein :).
          aber was seltsam ist:

          <script language="javascript" type="text/javascript">
          <!--
          document.write("<table><tr><td id='1'>test</td></tr></table>");
          alert("go");
          document.getElementById('1').firstChild.nodeValue = "neuer wert";
          -->
          </script>

          Das geht ja auch. Sowohl auf Firefox 1.0 als auch auf IE 6.
          Und ich mach im Grunde nix anderes.
          Nur stehen viel komplexere Funktionen dahinter.
          aber das ist ja der ausgabe eigentlich egal..

          dann guck ich mal weiter worans liegen könnte. wenn ich auf keine lösung komm, kann ich dir ja mal viell. die sache live zeigen...

          1. ich habe die lösung.
            man kann den text-wert einer node wohl nur ändern wenn davor etwas drinstand! kommentar funktioniert nicht! (hatte ich so)

            also das hier geht nicht:

            <script language="javascript" type="text/javascript">
            <!--
            document.write("<table><tr><td id='1'><!-- k --></td></tr></table>");
            alert("go");
            document.getElementById('1').firstChild.nodeValue = "neuer wert";
            -->
            </script>

            auch blöd!

            1. mist.
              bei mir gehts trotzdem nicht.
              unglaublich.

              1. ok.
                ursache endgültig gefunden.
                ich hatte als id-wert eine zahl also id="1" etc.
                ich hatte bevor ich das so machte noch überlegt, ob das wohl probleme machen würde. hatte aber in erinnerung, dass es bei funktionen anderer leute geklappt hatte. und eigentlich ist es ja auch keine variable in dem sinn.
                mache ich ein prefix davor, geht es.

                1. Hi,

                  ich hatte als id-wert eine zahl also id="1" etc.

                  ja, das ist ungültig; IDs und Name-Tokens müssen mit einem Buchstaben beginnen. Zudem:

                  man kann den text-wert einer node wohl nur ändern wenn davor etwas drinstand!

                  Nein. Du greifst aber auf das firstChild zu, um dieses zu manipulieren, was natürlich schief geht, wenn kein solches existiert. Ferner:

                  document.write("<table><tr><td id='1'>test</

                  Dein JavaScript-Code ist an exakt jener Stelle beendet, weil die Zeichenkette "</" den <script>-Bereich abschließt. Daher wird der fehlerhafte JavaScript-Code "-->" auch nicht mehr erreicht.

                  Wozu eigentlich eine Tabelle, wenn Du offenbar nur Text ausgeben möchtest?

                  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. mein generierter code in den ich noch nachträglich was reinschreiben will besteht aus tabellen.
                    eigentlich möchte ich am liebsten einen text in einen bestimmten bereich reinschreiben (eine tabellenzeile), der dann auch noch als html  formatiert wird.

                    gibt es da ne möglichkeit?

                    per nodeValue grieg ich da ja nur text rein.

                    ich möchte also per javascript in einen td bereich html code reinschreiben - ohne dass ich den gegebenen html-code auseinandernehmen muss und die einzelnen html knoten dann extra über dom erzeugen muss.
                    geht warsch. nicht oder?

                    1. hi,

                      ich möchte also per javascript in einen td bereich html code reinschreiben - ohne dass ich den gegebenen html-code auseinandernehmen muss und die einzelnen html knoten dann extra über dom erzeugen muss.
                      geht warsch. nicht oder?

                      entweder über's DOM elemente ordentlich erzeugen und einhängen - oder innerHTML nutzen.

                      gruß,
                      wahsaga

                      --
                      "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
                      1. oder innerHTML nutzen.

                        danke für den tip!
                        ist aber eine ie-spezifische funktion oder?

                        1. Hi,

                          oder innerHTML nutzen.
                          ist aber eine ie-spezifische funktion oder?

                          ja, allerdings wurde sie in Opera und Mozilla schon vor einiger Zeit übernommen. Wenn Du maximale Kompatibilität (zumindest zu standardkonformen Systemen) erreichen willst, wirst Du um das Erzeugen neuer Nodes nicht herumkommen.

                          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
                  2. man kann den text-wert einer node wohl nur ändern wenn davor etwas drinstand!

                    Nein. Du greifst aber auf das firstChild zu, um dieses zu manipulieren, was natürlich schief geht, wenn kein solches existiert.

                    genauso isses aber, es genügt, wenn ein &nbsp; drinnensteht...

                    »

                    document.write("<table><tr><td id='1'>test</

                    Dein JavaScript-Code ist an exakt jener Stelle beendet, weil die Zeichenkette "</" den <script>-Bereich abschließt. Daher wird der fehlerhafte JavaScript-Code "-->" auch nicht mehr erreicht.

                    Was für ein Blödsinn, das script wird sicher nicht beendet...

                    1. Hi,

                      Dein JavaScript-Code ist an exakt jener Stelle beendet, weil die Zeichenkette "</" den <script>-Bereich abschließt.
                      Was für ein Blödsinn, das script wird sicher nicht beendet...

                      selbstverständlich wird es das. Oder verlässt Du Dich etwa auf die manchmal durchgeführten Fehlerkorrekturen einzelner Browser? _Das_ ist Blödsinn.

                      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. Hi,

                        Du hast behauptet, daß in der vorkommenden Konstruktion document.write("...stuff deleted...</ die letzen beiden Zeichen das Skript beenden. Das würde bedeuten, daß es prinzipiell nicht möglich wäre, html-Tags in document.write - Funktionen zu verwenden, da man die Tags ja schließlich auch schliessen können sollte. Wenn Du aber etwas anderes gemeint haben solltest, dann drück Dich bitte klarer aus...

                        1. hi,

                          Du hast behauptet, daß in der vorkommenden Konstruktion document.write("...stuff deleted...</ die letzen beiden Zeichen das Skript beenden.

                          ja, tun sie auch, und zwar per definition.
                          das brauchst du nicht mal begreifen, wenn du nicht willst (und den eindruck macht's ja), sondern musst es lediglich als gegeben akzeptieren.
                          (komm jetzt nicht wieder mit "funktioniert aber!!1", denn das zählt in diesem raum hier wenig ...)

                          Das würde bedeuten, daß es prinzipiell nicht möglich wäre, html-Tags in document.write - Funktionen zu verwenden, da man die Tags ja schließlich auch schliessen können sollte.

                          doch, natürlich kann man - man muss halt nur die _richtige_ schreibweise verwenden - stichwort maskieren, oder auch englisch "escapen".

                          Wenn Du aber etwas anderes gemeint haben solltest, dann drück Dich bitte klarer aus...

                          und wenn du dich mit dem thema noch nicht so eingehend beschäftigt hast, dass du wirklich weißt, wo von du redest ... dann hau doch bitte auch nicht so dolle auf die kacke.

                          gruß,
                          wahsaga

                          --
                          "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
                          1. hi,

                            das brauchst du nicht mal begreifen, wenn du nicht willst (und den eindruck macht's ja), sondern musst es lediglich als gegeben akzeptieren.

                            reg' Dich nicht auf...

                            (komm jetzt nicht wieder mit "funktioniert aber!!1", denn das zählt in diesem raum hier wenig ...)

                            Ich hab' nicht gewusst, dass es hier um die religiöse Vertretung der reinen Lehre geht; der Vorposter wollte wissen, warum sein bei seinem Skript etwas nicht funktioniert, und das war unter Garantie _nicht_ der Grund. Aber das zählt ja hier wenig, schreibst Du ja selbst, hier gehts offensichtlich um das Transportieren von Sendungsbewußtsein.

                            Doch bedenke: vielleicht verirren sich ja auch Leute in dieses Forum, die einfach ein Problem gelöst haben wollen. Und die Lösung des Problems lag sicher nicht daran, daß das Script zu Ende war. Also war die Antwort des geschätzten Vorposters von der Art: "Ich weiß zwar nicht, warum's nicht geht, aber dafür sag ich Dir jetzt was: Ein "richtiger" Browser, also einer, den es zwar nicht gibt, der sich aber sowas von total an den Standard des W3C im Himmel hält, ein echter, guter aber strenger, eben ein richtiger Browser, der hätte Dein Script an dieser Stelle abgebrochen". Und jetzt versetz' Dich in Lage jemandes, der nur einen Hinweis sucht, warum sein Script nicht richtig abgearbeitet wird...

                            1. hi,

                              Ich hab' nicht gewusst, dass es hier um die religiöse Vertretung der reinen Lehre geht; der Vorposter wollte wissen, warum sein bei seinem Skript etwas nicht funktioniert, und das war unter Garantie _nicht_ der Grund.

                              es _kann_ aber ein grund sein, der es auf irgendeinem browser, den er vielleicht noch gar nicht getestet hat, _nicht_ funktioniert.

                              Also war die Antwort des geschätzten Vorposters von der Art: "Ich weiß zwar nicht, warum's nicht geht,

                              nein, auf diese weise bist _du_ in den thread reingeplatzt.

                              Und jetzt versetz' Dich in Lage jemandes, der nur einen Hinweis sucht, warum sein Script nicht richtig abgearbeitet wird...

                              diese frage war zu dem zeitpunkt schon geklärt - hätte dir auffallen können, wenn du mal den ganzen thread aufmerksam gelesen hättest.

                              wenn du einen hinweis darauf, wie man eine weitere _potentiell_ fehlerträchtige stelle ganz simpel ausbessern kann, für nicht angebracht hältst - dann halte ich dich als diskussionspartner für ernsthafte fragen zum thema webdesign und co. ebenfalls für ungeeignet.

                              gruß,
                              wahsaga

                              --
                              "Look, that's why there's rules, understand? So that you _think_ before you break 'em."