2012-06-12 10 views
12

Abbiamo bisogno di aggiungere un elemento javascript all'interno di un iframe (è all'interno dello stesso web/dominio quindi nessun problema di sicurezza collegato). Abbiamo funzionato, ma non so come riempire il contenuto dello script tra i suoi tag ... come lo faresti?set di elementi script JavaScript testo interno

var iframe = document.getElementById('iframeX'); 
var iframedocument = iframe.contentWindow.document; 

var script = iframedocument.createElement('script'); 

script.setAttribute('type', 'text/javascript'); 
script.innerText = 'alert(\'hello\')'; //this doesnt work 
script.value= 'alert(\'hello\')'; //this doesnt work either 

var head = iframedocument.getElementsByTagName("head")[0]; 

head.appendChild(script); 

risultato desiderato nel documento iframe:

<head> 
    <script type="text/javascript" > 
     alert('hello'); 
    </script> 
</head> 
+0

funziona bene http://jsfiddle.net/FU7ZK/ – Esailija

+0

che sembra funzionare qui: http://jsfiddle.net/mRgn7/ –

risposta

11

Hai provato:

script.setAttribute('type', 'text/javascript'); 
script.innerHTML = 'alert(\'hello\')'; 
+2

Buon punto: l'impostazione innerText non è standard. –

+0

L'ho provato: la versione OP non funziona su FF ma funziona con innerHTML. –

+0

Intendo il tizio che ha posto la domanda ... Qual è l'abbreviazione di SO (* Stack Overflow *)? –

3

ho avuto problema con script.innerHTML in quanto non funziona in IE8-.

script.text = 'alert(\'hello\')'; 

script.text funziona meglio per me. trovato: Create script tag in IE8