/ Forside / Teknologi / Udvikling / Java Scripts / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
At indsætte et script i et div via
Fra : Morten Nørgaard


Dato : 05-04-07 18:06

Hej alle kloge mennesker,

   jeg forsøger at få nedenstående til at køre - at indsætte et script i
et div vha. innerHTML, til øjeblikkelig eksekvering. Men - det virker
ikke. Hvad gør jeg galt?

På forhånd tak for hjælp,

Morten

Markup og kode:

<html>
<head></head><body>

<div id="dummy"></div>

<script>
   document.getElementById("dummy").innerHTML = "<script
type='text/javascript'>alert('yikes');<\/script>";
</script>

</body>
</html>

 
 
Christian Hansen (05-04-2007)
Kommentar
Fra : Christian Hansen


Dato : 05-04-07 20:05

Hej Morgen

er du ikke på vej over åen efter vand. Hvorfor ikke bare
<script type="text/javascript">alert('yikes');</script> - det skulle
gerne kører med det samme, det bliver læst.

Eller sagt på en andne måde - hvad er pointen i at smide det inde i en div?

Mvh Christian

Morten Nørgaard wrote:
> Hej alle kloge mennesker,
>
> jeg forsøger at få nedenstående til at køre - at indsætte et script
> i et div vha. innerHTML, til øjeblikkelig eksekvering. Men - det virker
> ikke. Hvad gør jeg galt?
>
> På forhånd tak for hjælp,
>
> Morten
>
> Markup og kode:
>
> <html>
> <head></head><body>
>
> <div id="dummy"></div>
>
> <script>
> document.getElementById("dummy").innerHTML = "<script
> type='text/javascript'>alert('yikes');<\/script>";
> </script>
>
> </body>
> </html>

Morten Nørgaard (05-04-2007)
Kommentar
Fra : Morten Nørgaard


Dato : 05-04-07 20:41

Christian Hansen skrev:

Hej Christian,

> Hej Morgen
>

>
> Eller sagt på en andne måde - hvad er pointen i at smide det inde i en div?

Eksemplet er kogt ned til det absolutte minimum; jeg håber på at bruge
denne løsning til noget klient-side advisering i en (meget) stor .net
løsning. Men det ville ikke være fremmeligt for et godt råd i denne
nyhedsgruppe hvis jeg vedlagde flere hundrede linjers code-behind c#.

Har du en løsning på problemet?

Mvh.

Morten






Martin (06-04-2007)
Kommentar
Fra : Martin


Dato : 06-04-07 10:20

Morten Nørgaard wrote:
> Hej alle kloge mennesker,
>
> jeg forsøger at få nedenstående til at køre - at indsætte et script
> i et div vha. innerHTML, til øjeblikkelig eksekvering. Men - det virker
> ikke. Hvad gør jeg galt?
>
> På forhånd tak for hjælp,
>
> Morten
>
> Markup og kode:
>
> <html>
> <head></head><body>
>
> <div id="dummy"></div>
>
> <script>
> document.getElementById("dummy").innerHTML = "<script
> type='text/javascript'>alert('yikes');<\/script>";
> </script>
>
> </body>
> </html>

Du kan også lave det som en funktion, også kalde den med onload i body?

Men mon ikke det er noget sikkerheds tingeling du er kommet over i,
altså at man ikke kan putte noget <script> ind i innerHTML?

Har du prøvet istedet for din alert bare at sætte noget ganske alm.
tekst ind?

Ukendt (06-04-2007)
Kommentar
Fra : Ukendt


Dato : 06-04-07 17:08

Martin skrev:

> Har du prøvet istedet for din alert bare at sætte noget ganske alm.
> tekst ind?

Hej Martin,

   ja, det er forsøgt. Men desværre uden heldigt udfald.

Birger Sørensen (06-04-2007)
Kommentar
Fra : Birger Sørensen


Dato : 06-04-07 22:54

Morten Nørgaard wrote in dk.edb.internet.webdesign.clientside:
> Hej alle kloge mennesker,
>
>    jeg forsøger at få nedenstående til at køre - at indsætte et script i
> et div vha. innerHTML, til øjeblikkelig eksekvering. Men - det virker
> ikke. Hvad gør jeg galt?
>
> På forhånd tak for hjælp,
>
> Morten
>
> Markup og kode:
>
> <html>
> <head></head><body>
>
> <div id="dummy"></div>
>
> <script>
>    document.getElementById("dummy").innerHTML = "<script
> type='text/javascript'>alert('yikes');<\/script>";
> </script>
>
> </body>
> </html>

Hej Morten.

Jeg vil mene at din kode er god nok.
Problemet med den er, at du kan ikke gøre det direkte i body'en, fordi
siden skal være indlæst før du kan referere til elementer i den.
Dvs. at forslaget om at gøre det i onload på body skulle virke - eller du
kan kalde på en funktion der indsætter teksten i div på anden vis.
Hvis det skal skrives samtidig med at body'en loades, skal du skrive det
som document.write inde i div'en. Er så ikke sikker på at script bliver
kørt under load..

Birger

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Lasse Reichstein Nie~ (08-04-2007)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 08-04-07 12:10

Morten Nørgaard <mnoYOUKNOWTHEDRILL@uni-c.dk> writes:

> Hej alle kloge mennesker,
>
>    jeg forsøger at få nedenstående til at køre - at indsætte et
>    script i et div vha. innerHTML, til øjeblikkelig
>    eksekvering. Men - det virker ikke. Hvad gør jeg galt?

Du tilføjer et script via innerHTML. Det virker bare ikke, beklager.
Det er dog også unødvendigt. Hvis du har scriptets indhold som tekst,
og du vil udføre det med det samme, så brug "eval":
<script type="text/javascript">
eval("alert('yikes')");
</script>

På den anden side er brug af eval oftest et tegn på at man gør
noget forkert. Hvis du har fået scriptet via XMLHTTPRequest,
så giver det mening, men hvis du kendte det da siden blev hentet,
så kan det gøres meget mere elegant.

/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'

Søg
Reklame
Statistik
Spørgsmål : 177459
Tips : 31962
Nyheder : 719565
Indlæg : 6408173
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste