Frank: Javascript Variablen - JavaScript Code zuweisen

Hallo,

ich möchte einer JavaScript-Variablen JavaScript-Code zuweisen.

Hier ein Beispiel:
<script>
var code = 'html html <script> alert('Foobar'); </script> html html';
document.getElementById('elementId').innerHTML = code;
</script>

Das schließende Script-Tag im String wird wirklich als schließendes
Tag vom Parser verstanden. Daher kommt es zwangsweise zu einem
JS-Error. Wie ist dies zu umgehen?

  1. Hallo Frank.

    ich möchte einer JavaScript-Variablen JavaScript-Code zuweisen.

    Hier ein Beispiel:
    <script>
    var code = 'html html <script> alert('Foobar'); </script> html html';
    document.getElementById('elementId').innerHTML = code;
    </script>

    Das schließende Script-Tag im String wird wirklich als schließendes
    Tag vom Parser verstanden. Daher kommt es zwangsweise zu einem
    JS-Error. Wie ist dies zu umgehen?

    Genau so wie du es bereits an einer anderen Stelle getan hast: maskiere den Slash mit einem Backslash.

    Einen schönen Freitag noch.

    Gruß, Mathias

    --
    ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
    debian/rules
    1. Hello out there!

      Genau so wie du es bereits an einer anderen Stelle getan hast: maskiere den Slash mit einem Backslash.

      Sollte nicht eher das '<' maskiert werden?

      Und weist nicht das Einfügen eines 'script'-Elements mit JavaScript auf einen schweren konzeptionellen Magel hin?

      @Frank: Was soll das? Was willst du damit erreichen?

      See ya up the road,
      Gunnar

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

        Genau so wie du es bereits an einer anderen Stelle getan hast: maskiere den Slash mit einem Backslash.

        Sollte nicht eher das '<' maskiert werden?

        Nein. Die Zeichenfolge "</" beendet lt. Standard (siehe http://www.w3.org/TR/html4/types.html#idx-CDATA-1) den Scriptbereich. Wenn statt "</script>" jetzt "</script>" dasteht, ändert das nichts am Vorhandensein der Zeichenfolge "</". Bei "</script>" ist sie aber nicht mehr vorhanden.

        Selbst wenn sich die Browser nicht an den Standard halten und nicht beim ersten "</" aufhören, sondern erst bei "</script>", hilft ein "" vor dem "<" nichts, da ja nach wie vor "</script>" dasteht.

        Und weist nicht das Einfügen eines 'script'-Elements mit JavaScript auf einen schweren konzeptionellen Magel hin?

        IMHO: ja.

        cu,
        Andreas

        --
        Warum nennt sich Andreas hier MudGuard?
        O o ostern ...
        Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
        1. Danke für die Hilfe.

          Bin mir nicht sicher, ob es ein konzeptioneller Mangel ist.
          Ich genriere mit PHP relativ komplexe AJAX/Widgets-Frontends.
          Ich gebe zu, dass es noch nicht die glücklichste Lösung ist.
          Aber für erste Tests bringt mich das schon weiter.

          1. Hello out there!

            Bin mir nicht sicher, ob es ein konzeptioneller Mangel ist.

            Warum steht der JavaScript-Code des Bereichs, den du erst mit JavaScript ins Dokument schreiben willst, nicht bereits in einem im Dokument vorhandenen 'script'-Element? In einer Funktion, die du bei Bedarf aufrufst.

            See ya up the road,
            Gunnar

            --
            „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)