在Javascript中使用IE的appendChild
Using appendChild with IE in Javascript
我在IE中遇到了这个代码的麻烦(与Chrome一起似乎工作得很好):
<html>
<body>
<script type="text/javascript">
var scriptContent = "var whatever=1";
var _js = document.createElement('script');
_js.setAttribute('type', 'text/javascript');
textNode = document.createTextNode(scriptContent);
_js.appendChild(textNode);
document.getElementsByTagName('body')[0].appendChild(_js);
</script>
</body>
</html>
我在Internet Explorer (IE9)中得到的错误是:"对方法的意外调用或对属性的访问"对语句"_js.appendChild(textNode)"。
有办法解决这个问题吗?
您可以看到IE中的appendChild()
并不适用于<script>
-元素。(似乎IE9支持它,但这取决于浏览器模式)
Nivas之前有一个正确的答案,不幸的是它已经被删除了。在IE中使用
_js.text = scriptContent;
在DOM准备好之前执行脚本,因此获得<body>
标记是一个竞争条件。实际上,我在Chrome 15和Firefox 8中也会遇到同样的错误。
您可以看到在加载页面后调用该代码时的工作情况,例如在函数
中HTML
<a href="#" onclick="return append()">append</a>
JavaScript function append() {
var scriptContent = "var whatever=1";
var _js = document.createElement('script');
_js.setAttribute('type', 'text/javascript');
textNode = document.createTextNode(scriptContent);
_js.appendChild(textNode);
document.getElementsByTagName('body')[0].appendChild(_js);
return false;
}
相关文章:
- 为什么这在IE中的工作方式与在Firefox中不同
- 后焦点更改为IE 11中的地址栏,而不是转移到表单中的下一个控件
- 如何在读取XLS/XLSX本地文件时,使用IE的javascript代码启用未标记为安全的ActiveX控件
- jQuery blueimp文件上传:将N-1个文件上传到IE中的服务器
- 有没有一种方法可以在控制台关闭的情况下让console.log()在IE中记录消息
- 设置倒计时计时器,IE出现问题
- 仅在IE中,javascript中的时区名称不正确
- 在IE中加载Firebug Lite时出现问题
- 为什么我得到错误IE修剪方法是't支持
- IE中的CSS翻转动画:翻转的一面显示镜像内容
- 通过具有IE<11
- 元素.appendChild()插入IE.变通方法?(与innerText与textContent相关)
- appendChild dataURI映像到window.open在IE中失败
- document.head.appendChild 或 document.createElement 在 IE 中不起作
- document.head.appendChild(element) ie ie7 and ie8
- appendChild不能处理窗口.在IE中打开
- 无法获取属性值'appendChild':对象为空或未定义"同时追加脚本到IE
- 在Javascript中使用IE的appendChild
- 对方法或属性访问的意外调用.在IE中使用appendChild()
- appendChild不'在IE中无法正常工作