在 Javascript 中使用 IE 的appendChild
我在 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(文本节点)”。
有什么办法可以解决这个问题吗?
I am having trouble with this code in IE (with Chrome it seems to work fine):
<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>
The error I get in Internet Explorer (IE9) is: "unexpected call to a method or access to a property" on statement "_js.appendChild(textNode)".
Is there any way to work around this problem?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
正如您可以在此处看到的IE 中的 code>appendChild() 不适用于
元素。
(好像IE9支持它,但这取决于浏览器模式)
Nivas之前有一个正确的答案,不幸的是它已被删除。
在IE中使用
As you can see here
appendChild()
in IE is not applied to<script>
-elements.(Seems as if IE9 supports it, but it depends on the browser-mode)
There was an correct answer before by Nivas, unfortunately it has been deleted.
In IE use
您的脚本在 DOM 准备好之前执行,因此获取
标记是一个竞争条件。实际上,我在 Chrome 15 和 Firefox 8 中遇到了同样的错误。
在页面后调用时,您可以看到代码工作被加载,例如在
HTML
JavaScript函数中
Your script is being executed before the DOM is ready, so getting the
<body>
tag is a race condition. I actually get the same error in Chrome 15 and Firefox 8.You can see the code works when called after the page is loaded, for example in a function
HTML
JavaScript