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 ?


  • 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.

  • 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

  • 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 ?