Marc: nodeValue/innerHTML

Hallo,

ich komme gerade nicht weiter:

Ich habe ein mittels document.createElement ein Div erstellt, in den ich nun einen Link setzen will.
Der einfachheit halber, wollte ich einfach den Link in einen String packen und den dann per innerHTML zuweisen. Der Link sieht etwa so aus:

<a href="seite.php?module[var1]=wert&module[var2]=wert1...">sdsd</a>

Das Problem ist folgendes: Wenn ich innerHTML diesen Link als String zuweise, werden die [ und ] %5D bzw. %5B umgewandelt.

Wenn ich hingegen firstChild.nodeValue benutze, werden die < und > entschärft..

  1. moin Marc :)

    Ich habe ein mittels document.createElement ein Div erstellt, in den ich nun einen Link setzen will.
    Der einfachheit halber, wollte ich einfach den Link in einen String packen und den dann per innerHTML zuweisen. Der Link sieht etwa so aus:

    Ist es denn wirklich so viel umständlicher ein weiteres Element (a) zu erstellen und hier das Attribut "href" und ein nodeValue zu setzen?

    liebe Grüße aus Berlin
    lina-

    --
    Dinge aus dem linaland
    Self-Code: ie:% fl:( br:^ va:) ls:/ fo:| rl:( ss:) de:] js:| mo:)
    1. moin Marc :)

      Ich habe ein mittels document.createElement ein Div erstellt, in den ich nun einen Link setzen will.
      Der einfachheit halber, wollte ich einfach den Link in einen String packen und den dann per innerHTML zuweisen. Der Link sieht etwa so aus:

      Ist es denn wirklich so viel umständlicher ein weiteres Element (a) zu erstellen und hier das Attribut "href" und ein nodeValue zu setzen?

      liebe Grüße aus Berlin
      lina-

      Ja, denn der Link wird außerhalb der js-Datei dynamisch von einem PHP-Skript erstellt und kann eben erst dann an die Funktion in der js-Datei übergeben werden..

      1. Mmh..Es funktioniert trotzdem, wie ich gerade sehe :) Offenbar konvertiert PHP die ASCII-Zeichen zurück..

        1. Hello out there!

          Mmh..Es funktioniert trotzdem, wie ich gerade sehe :) Offenbar konvertiert PHP die ASCII-Zeichen zurück..

          ?? Du meinst, dass '%5B' dasselbe ist wie '['? Das ist für den Webserver der Fall und hat mit PHP rein gar nichts zu tun.

          Dir ist klar, wann und wo PHP und wann und wo JavaScript wirkt?

          See ya up the road,
          Gunnar

          --
          „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)
          1. Hello out there!

            Mmh..Es funktioniert trotzdem, wie ich gerade sehe :) Offenbar konvertiert PHP die ASCII-Zeichen zurück..

            ?? Du meinst, dass '%5B' dasselbe ist wie '['? Das ist für den Webserver der Fall und hat mit PHP rein gar nichts zu tun.

            Dir ist klar, wann und wo PHP und wann und wo JavaScript wirkt?

            See ya up the road,
            Gunnar

            Ist es. Ich wusste nicht, dass das für den Browser das selbe bedeutet..

            Wieder was gelernt :)

            1. Hello out there!

              Ich sagte:

              ?? Du meinst, dass '%5B' dasselbe ist wie '['? Das ist für den Webserver der Fall

              Darauf du:

              Ich wusste nicht, dass das für den Browser das selbe bedeutet..

              Den Unterschied zwischen Server und Browser kennst du?

              Ich:

              Dir ist klar, wann und wo PHP und wann und wo JavaScript wirkt?

              Du:

              Ist es.

              Da hab ich jetzt meine Zweifel.

              See ya up the road,
              Gunnar

              --
              „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)
              1. Der Link wird per PHP-Funktion erzeugt (In einer PHP-Datei natürlich). Das Javascript befindet sich in einer js-Datei (Es handelt sich um eine Klasse).

                Ich muss ja irgendwie den String für den Link in die Javascript-Datei bekommen. Das habe ich gemacht, indem ich der JS-Klasse den String übergeben habe.

                Nun sollte diese JS-Klasse den String in ein Div einfügen. Dabei ist es zu den oben beschriebenen Problemen gekommen.

                Das _einzige_, dass ich nicht wusste, ist dass die ASCII-Zeichen automatisch richtig interpretiert werden.

                Das dazu

                1. Nun sollte diese JS-Klasse den String in ein Div einfügen. Dabei ist es zu den oben beschriebenen Problemen gekommen.

                  In welchem Browser denn? ich hab das nachgebaut und in keinem mir zu Verfügung stehenden Browser festegstellt.

                  Das _einzige_, dass ich nicht wusste, ist dass die ASCII-Zeichen automatisch richtig interpretiert werden.

                  ASCII Zeichen werden immer richtig interpretiert. Ob die URL dekodierten Zeichen auf dem Server richtig interpretiert werden, hängt davon ab wie und ob sie serverseitig umgewandelt werden, PHP  macht das automatisch Perl z.b. nicht.

                  Struppi.

                  --
                  Javascript ist toll (Perl auch!)
                  1. ASCII Zeichen werden immer richtig interpretiert. Ob die URL dekodierten Zeichen auf dem Server richtig interpretiert werden, hängt davon ab wie und ob sie serverseitig umgewandelt werden, PHP  macht das automatisch Perl z.b. nicht.

                    Struppi.

                    Bei mir tritt es im FF 2.0 auf

                    1. Bei mir tritt es im FF 2.0 auf

                      Bei mir nicht http://javascript.jstruebig.de/test/linkhinzuf�gen.html

                      Struppi.

                      --
                      Javascript ist toll (Perl auch!)
                      1. Bei mir tritt es im FF 2.0 auf

                        Bei mir nicht http://javascript.jstruebig.de/test/linkhinzuf�gen.html

                        Struppi.

                        Komisch... Ich habe es genauso in grün. Ist aber eh egal, da es ja funktioniert.

      2. Hello out there!

        Ja, denn der Link wird außerhalb der js-Datei dynamisch von einem PHP-Skript erstellt und kann eben erst dann an die Funktion in der js-Datei übergeben werden..

        Was hat PHP mit einem clientseitigen Problem zu tun?

        See ya up the road,
        Gunnar

        --
        „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)
  2. Hello out there!

    <a href="seite.php?module[var1]=wert&module[var2]=wert1...">sdsd</a>


    [HTML401 §B.2.2]

    Das Problem ist folgendes: Wenn ich innerHTML diesen Link als String zuweise, werden die [ und ] %5D bzw. %5B umgewandelt.

    Was ist daran das Problem?

    See ya up the road,
    Gunnar

    --
    „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)
  3. <a href="seite.php?module[var1]=wert&module[var2]=wert1...">sdsd</a>

    Das Problem ist folgendes: Wenn ich innerHTML diesen Link als String zuweise, werden die [ und ] %5D bzw. %5B umgewandelt.

    Werden sie nicht, höchstens bei send macht das der Browser, aber selbst das konnte ich weder im IE 7 noch im FF 2.0 festellen.

    Aber wie schon Gunnar andeutete, das ist die übliche Kodierung der URL und wird i.d.R. Serverseitig auch wieder Rückgängig gemacht.

    Struppi.

    --
    Javascript ist toll (Perl auch!)