17

我们需要在 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>
4

2 回答 2

19

你试过了吗:

script.setAttribute('type', 'text/javascript');
script.innerHTML = 'alert(\'hello\')';
于 2012-06-12T15:43:26.260 回答
4

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

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

script.text 对我来说效果更好。发现于:在 IE8 中创建脚本标签

于 2013-09-25T17:07:03.437 回答