Html test Feld

  • Hi,

    ich wollte man probieren eine Seite zu erstellen, auf der eine textarea ist in der man den Html Code schreibt, dieser dann nach einen Knopf druck als Text gespeichert und in einem anderen Div ausgegeben wird ( der Code soll dann auch ausgeführt werden in diesem Div ).

    Momentan funktioniert der JavaScript Teil zwar ganz gut, wird auch ausgeführt, allerdings wird nach dem Knopf druck die ganze Seite bearbeitet zu diesem Test Code und nicht wie eigentlich geplant nur der Div Container lässt sich da etwas machen das sich nicht die ganze Seite verändert sondern nur der Div ?


  • dann probier es mal mit innerHTML


    Code
    1. <script >
    2. function RefreshValue(){
    3. let code = document.getElementById("select").value;
    4. document.getElementById('CodeAusgabe').innerHTML=code;
    5. }
    6. </script>
  • Könnte man das eigentlich auch irgendwie umschreiben, dass auch javascript scripte ausgeführt werden ?

    Html funktioniert alles problemlos, aber hatte vorhin mal versuch mit javascript etwas ausgeben zu lassen, was halt nicht funktioniert hat.

    Dieser Beitrag wurde bereits 1 Mal editiert, zuletzt von ProOfNoobs ()

  • Hey,


    Wenn du reinen JavaScript-Code in dein Formular einträgst und diesen unbehandelt ausgibst dann wird der JavaScript Code auch ausgeführt.


    Bei einem Code Editor ist es okay dies ungefiltert zu lassen. Jedoch bei sonst allen anderen Formularen sollte man die Eingaben filtern und entsprechend weiter behandeln.


    Grüße,

    Stef

  • Warum sollte das für einen Code Editor ok sein? Die Basis bleibt ein Formular, dessen übertragenen Werte immer gefiltert werden sollten, sofern es von Benutzern ausgefüllt wird.

  • Könnte man das eigentlich auch irgendwie umschreiben, dass auch javascript scripte ausgeführt werden ?

    Nur Javascript würde ich mal so versuchen

    Code
    1. function RefreshValue(){
    2. let code = document.getElementById("select").value;
    3. script=document.createElement('script');
    4. script.innerHTML=code;
    5. document.getElementsByTagName('head')[0].appendChild(script);
    6. }

    wenn du alert() ins Textfeld schreibst wird er auch ausgeführt.

    Willst du aber alles mischen wie man es bei Codepen machen kann, und du sowas ins Textfeld schreiben willst

    Code
    1. <div id="test">ich bin ein test</div>
    2. <script>document.getElementById('test').style.color='red';</script>

    dann wird es etwas schwerer. Ich würde dann versuchen mit Regex Scripte und Html zu trennen und dann wieder neu ausgeben zu können.

    Aber warum willst du das Rad neu erfinden wenn es sowas schon fertig gibt ?

  • Warum sollte das für einen Code Editor ok sein? Die Basis bleibt ein Formular, dessen übertragenen Werte immer gefiltert werden sollten, sofern es von Benutzern ausgefüllt wird.

    Sonst wird ja der Code nicht ausgeführt.

  • Sonst wird ja der Code nicht ausgeführt.

    Naja, die filtern dennoch. Kannst ja mal versuchen, Schadcode darüber einzuwerfen, wird nicht klappen.

    Der Grund ist, weil die totzdem filtern, nur anders wie für ne simple Ausgabe.