Javascript脚本元素设置内部文本
Posted
技术标签:
【中文标题】Javascript脚本元素设置内部文本【英文标题】:Javascript script element set inner text 【发布时间】:2012-06-15 12:51:13 【问题描述】:我们需要在 iframe 中添加一个 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>
【问题讨论】:
工作正常jsfiddle.net/FU7ZK 它似乎在这里工作:jsfiddle.net/mRgn7 【参考方案1】:我遇到了 script.innerhtml 的问题,因为它在 IE8 中不起作用。
script.text = 'alert(\'hello\')';
script.text 对我来说效果更好。 发现于:Create script tag in IE8
【讨论】:
【参考方案2】:你试过了吗:
script.setAttribute('type', 'text/javascript');
script.innerHTML = 'alert(\'hello\')';
【讨论】:
我测试过:OP 版本不适用于 FF,但它适用于 innerHTML。 我的意思是问这个问题的人... SO (Stack Overflow) 的缩写是什么? SO就是***,OP的完整形式是什么?我在很多地方都见过!明白了...原始海报! :) @dystroyinnerText
不是 Firefox 的属性!
是的,这就是为什么我说你是对的(并且支持你):innerText 不是标准的,也没有在 FF (Firefox) 中实现。对不起,缩写不好(甚至不是 Firefox 的首字母缩写词)。以上是关于Javascript脚本元素设置内部文本的主要内容,如果未能解决你的问题,请参考以下文章