Avatar billede sortsnak.dk Nybegynder
15. oktober 2006 - 14:59 Der er 11 kommentarer og
1 løsning

Kør javascript i div?

Hej alle sammen

Jeg har et kæmpe problem som der må findes en løsning på. :) Og jeg ved en af jer derude kender svaret... Så her kommer det. hehe

Jeg har en javascript-kode i et textarea som jeg smider ind i en div (div.innerHTML = textarea.value) ... problemet er at javascript-koden ikke bliver eksekveret ved "flytningen". Hvad gør jeg? :)

Her er et eksempel:

<html>
<head>
</head>
<body>
<textarea id="container" style="width: 500px; height: 200px">
    <script type="text/javascript">
        alert();
    </script>
</textarea>


<div id="results" style="border: 1px solid #808008; padding: 10px;"></div>


<script type="text/javascript">
   
    obj = document.getElementById('container');
    out = document.getElementById('results');

    out.innerHTML = obj.value;

</script>

</body>
</html>
Avatar billede Slettet bruger
15. oktober 2006 - 19:05 #1
Er det resultatet af kørslen du vil have i out?

Så kan du bruge eval funktionen:

out.innerHTML = eval(obj.value);
Avatar billede sortsnak.dk Nybegynder
15. oktober 2006 - 22:52 #2
... det kan jeg ikke se gør nogen forskel?

Jeg vil gerne have at alert() bliver eksekveret når indholdet af textareaet bliver overflyttet til div.innerHTML. :)
Avatar billede roenving Novice
15. oktober 2006 - 23:20 #3
Avatar billede sortsnak.dk Nybegynder
16. oktober 2006 - 10:01 #4
Ja okay, eval virker hvis man kun skriver javascript-koden (fx. "alert()") i textarea ... men indholdet af textarea kan både være html og javascript. Så dvs. følgende kode skal virke:

<span style="color: red">Hejsa</span>
<script type="text/javascript">
  alert();
</script>

= Resultatet af det vil blive at Hejsa vil fremstå med rød tekst i boksen og alert() vil poppe frem. :)

Hvordan gør man det? :)
Avatar billede olebole Juniormester
16. oktober 2006 - 10:55 #5
<ole>

Hvad er det præcist, du vil lave ... hvordan og hvorfor?  :)

/mvh
</bole>
Avatar billede sortsnak.dk Nybegynder
16. oktober 2006 - 19:37 #6
Jeg vil gerne overflytte html/javascript fra en text-box til en ny div, og først når indholdet fra textboxen er blevet overført, skal den eksekvere indholdet. Dvs. fortolke html-koden og køre javascript-koden osv... :)
Avatar billede sortsnak.dk Nybegynder
17. oktober 2006 - 12:16 #7
Nå, lige meget... fandt på noget andet. :)

Men det er nu stadig et ganske interessant spørgsmål at få svar på... Hvordan eksekverer man både html og javascript når dette er oprettet via en "div.innerHTML = textarea.value"? :)
Avatar billede olebole Juniormester
17. oktober 2006 - 13:31 #8
Hmmm ... jeg har ikke selv prøvet at afvikle script på den måde - og ville nok heller ikke forsøge det.
'innerHTML' har som bekendt aldrig været en del af nogen standard og strider lodret mod de måder, man normalt behandler markup ... det ville undre, om man umiddelbart kan gøre sådan  :)
Avatar billede roenving Novice
17. oktober 2006 - 17:05 #9
-- men man kan også i DOM appende et script-element, men hvad der sker med immidiate-kode har jeg ingen fornemmelser af ...
Avatar billede olebole Juniormester
18. oktober 2006 - 09:28 #10
- og det skulle undre, om ikke det tilmed er browser-afhængigt  :)
Avatar billede sortsnak.dk Nybegynder
24. oktober 2006 - 17:12 #11
Okay, så lad mig omformulere spørgsmålet. Et textarea indeholder HTML og Javascript (dvs. fx. <html>, og <script></script>). Hvordan eksekverer man textareaens indhold i en div ved siden af textareaet? :P
Avatar billede sortsnak.dk Nybegynder
03. april 2011 - 22:53 #12
Lukker den.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester