【问题标题】:CreateNode not working IE9CreateNode 不工作 IE9
【发布时间】:2014-01-13 13:28:14
【问题描述】:

我在 IE 9 上遇到此代码错误。

    <!doctype html>
    <html>
    <head>
        <title>Create Node test</title>
    </head>
    <body>


    <script type="text/javascript">
    window.onload = function () {
        var head = document.getElementsByTagName('head')[0];
        var styleEl = document.createElement('style');
        var css = "body {};";

        if (styleEl.styleSheet){
          styleEl.styleSheet.cssText = css;
        } else {
          styleEl.appendChild(document.createTextNode(css));
        }

        head.appendChild(styleEl);
    }

    </script>
    </body>
    </html>

谁能告诉我我做错了什么?它在 Chrome 中运行良好。

谢谢

附: 要清楚: 我想知道为什么这不起作用,我不想修复。我正在尝试查找 IE 9 中的错误,我认为该错误可能与 createNode 方法和样式元素有关。 以前有没有人遇到过这个问题,还是 IE9 中的已知错误?

【问题讨论】:

  • 你遇到了什么错误?
  • SCRIPT65535:对方法或属性访问的意外调用。 createNode.html,第 19 行字符 4
  • 我推荐使用 jQuery,因为它可以管理原生 javascript API 中浏览器之间的不一致性
  • 很遗憾我没有这个选项
  • 删除;应该是var css = "body {}";

标签: javascript dom internet-explorer-9


【解决方案1】:

您可以随时使用:

<!doctype html>
<html>
<head>
<title>Create Node test</title>
<script type="text/javascript" language="javascript">
window.onload = function () {
    var head = document.getElementsByTagName('head')[0];
    var styleEl = document.createElement('style');
    var css = "body {background-color:red;};";

    styleEl.innerHTML = css;

    head.appendChild(styleEl);
}
</script>
</head>
<body>
</body>
</html>

【讨论】:

  • 快速浏览并不总是好的 :) 将您的脚本标签放在 head 部分而不是 body 之间。像我的例子
  • 应该没什么区别
  • 哎呀,我才意识到我处于兼容模式!问题解决了。我猜你得到了荣誉:-D
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多