2012-06-12 27 views
12

我們需要在iframe中添加一個javascript元素(它在同一個web /域中,因此沒有附加安全問題)。我們得到它的工作,但不知道如何填寫它的標籤之間的腳本內容...你會怎麼做?JavaScript腳本元素設置內部文本

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

期望的結果的iframe文檔中:

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

工作正常http://jsfiddle.net/FU7ZK/ – Esailija

+0

它似乎在這裏工作:http://jsfiddle.net/mRgn7/ –

回答

11

你嘗試:

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

好一點:在設置的innerText不達標。 –

+0

我測試了它:OP版本在FF上不起作用,但它可以與innerHTML一起使用。 –

+0

我是指問這個問題的人...... SO(* Stack Overflow *)的縮寫是什麼? –

3

我有問題script.innerHTML,因爲它沒有在IE8-工作。

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

script.text對我更好。 上找到:Create script tag in IE8