JavaScript
Børre Stenseth

Dynamiske skript

Hva

Når vi laster nytt innhold i en HTML-tag, blir dette øyeblikkelig parset som HTML. Slik er det ikke når vi loader eller setter script-tagger.

Dersom vi vil parse (og kjøre) et javascript som lastes på denne måten må vi eksplisitt evaluere scriptet med eval().

Vi skal se nærmere på dette i to eksempler i denne modulen

Lokalt skript

I dette eksempelet legger vi javascriptet som en text, og evaluerer etter behov. Javascriptet som styrer det hele ser slik ut

function doScript()
{
    var T=['<script>document.getElementById("mark").src="bs2.png";<\/script>',
            '<script>alert("hallo");<\/script>',
            '<script>document.getElementById("dump").innerHTML=\
                "Job done, script removed";<\/script>'].join();
    elt=document.getElementById("dump");
    elt.innerHTML=T;
    scripts=elt.getElementsByTagName("script");
    for(ix=0;ix<scripts.length;ix++)
        eval(scripts[ix].text);
}    
image not loaded
?

Skript fra tjener

Her laster vi script fra tjeneren med et Ajax-kall. Pythonscriptet som leverer er slik:

_getScript.py

Javascriptet som laster inn og evaluerer script er slik:

_loadScript()

-------

-----

(reload siden først)