2012-06-12 16 views
12

Potrzebujemy dodać element javascript wewnątrz elementu iframe (jego wewnętrzna strona/domena, więc nie ma problemów z bezpieczeństwem). Mamy to działa, ale nie wiem, jak wypełnić zawartość skryptu między jego tagami ... jak by to zrobić?Element skryptu JavaScript ustawiony jako wewnętrzny tekst

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); 

Pożądany wynik w dokumencie iframe:

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

działa dobrze http://jsfiddle.net/FU7ZK/ – Esailija

+0

to nie wydają się działać tutaj: http://jsfiddle.net/mRgn7/ –

Odpowiedz

11

Czy spróbować:

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

Dobry punkt ustawiania innerText nie jest standardem. –

+0

Testowałem: Wersja OP nie działa na FF, ale działa z innerHTML. –

+0

Mam na myśli faceta, który zadał pytanie ... Jaki jest skrót SO (* Stack Overflow *)? –

3

miałem problem z script.innerHTML jak to nie działa w IE8-.

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

script.text działa lepiej dla mnie. Znalezione na: Create script tag in IE8

Powiązane problemy