Sebastian: String 5-fach verschachteln

Hallo liebe Lesende,

ich hab ein Problem mit der Verschachtelung von Strings.

Ich möchte mit Hilfe von JavaScript den Inhalt einer Seite verändern, dann soll beim Überfahren einer Stelle ein Absatz geändert werden und wieder beim Überfahren eines Teils im Absatz die Seit an einer anderen Stelle verändert werden (in dem Fall ein Popup - aber das tut ja nicht zur Sache).

Nu stehe ich vor dem Problem, daß ich einen 5-fach verschatelten String brauche, aber da gehen mir schlichtweg die String-Marker aus.

Bsp.:
document.getElementById(" ... onmouseover='document.getElementById(" ... onmouseover=/document.getElementById(? ... ?)/")'")

Eine 3-fach Verschachtelung is ja einfach:

string = "'""'"
oder
string = '"''"'

aber nu wirds schwierig:

  • Frontslashs funktioniern, aber sie werden dann auch im string dargestellt (/string/)

  • Im Französischen und Spanischen gibt es angeblich so Zeichen, die wie krößer bzw. kleiner aussehen (einfach und doppelt), aber mit denen gings nicht

  • " funktioniert auch nicht

  • eigene Marker definieren, wie in Perl hat wollte auch nicht

Ich könnte jetzt Funktionen definieren, die mir Strings als Rückgabe liefern, allerdings wird dadurch dann mein code viel länger und unübersichtlicher, deshalb dachte ich, daß ich lieber mal frage, ob jemand noch ein paar identifyer kennt, oder andere Vorschläge hat.

Wäre klasse, wenn mir jemand helfen könnte.

Gruß Sebastian

  1. Hi,

    Nu stehe ich vor dem Problem, daß ich einen 5-fach verschatelten String brauche, aber da gehen mir schlichtweg die String-Marker aus.

    das tun sie nicht, wenn Du von innen nach außen vorgehst und dabei folgenden Grundsatz beachtest:

    Wenn Du einen Wert in einen Kontext bringst, musst Du ihn kontextspezifisch kodieren.

    Dann ergibt sich auch ein "\"''""'\"" wie von selbst.

    Eine 3-fach Verschachtelung is ja einfach:

    Eine 42-fach-Verschachtelung ebenfalls.

    aber nu wirds schwierig:

    Nur, weil Du rätst, anstatt planvoll vorzugehen.

    • Frontslashs funktioniern,

    Sind aber völlig sinnfrei, weil sie die Bedeutung eines Slashes haben, was nicht dem entspricht, was Du haben willst.

    • Im Französischen und Spanischen gibt es angeblich so Zeichen, die wie krößer bzw. kleiner aussehen (einfach und doppelt), aber mit denen gings nicht

    Natürlich nicht, sie haben keine Bedeutung, die Dir zugute kommt. Sie entsprechen einfach nur den Zeichen, die sie sind.

    • " funktioniert auch nicht

    Doch, sobald Du den Wert in den Kontext eines HTML-Attributs bringst. Aber eben auch nur dann.

    • eigene Marker definieren, wie in Perl hat wollte auch nicht

    Nein, Du kannst JavaScript nicht on the fly umprogrammieren. Seine String-Begrenzer sind Single- und Doublequote.

    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. Grütze .. äh ... Grüße!

    ich hab ein Problem mit der Verschachtelung von Strings.

    Cheatah hat dir ja schon erklärt, wie multiple Verschachtelungen "escaped" werden können.
    Allerdings dürfte das Ganze ziemlich unübersichtlich werden.
    Zeigst du mal interessehalber die komplette "Erzeugungsroutine"?


    Kai

    --
    Der vertuschte Gefahrstoff: Dihydrogenmonoxid
    ie:{ fl:( br:< va:) ls:? fo:| rl:? n4:° ss:{ de:] js:| ch:? mo:| zu:|