Javascript脚本元素设置内部文本

时间:2012-06-12 15:40:13

标签: javascript html iframe code-injection

我们需要在iframe中添加一个javascript元素(它在同一个web /域中,因此不会附加安全问题)。我们得到了它的工作,但不知道如何填写其标签之间的脚本内容...你会怎么做?

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>

2 个答案:

答案 0 :(得分:13)

你有没有尝试过:

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

答案 1 :(得分:3)

我遇到了script.innerHTML的问题,因为它在IE8中不起作用 - 。

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

script.text对我来说效果更好。 发现于:Create script tag in IE8