none
大家好,帮我看看我以下的代码有什么错误? RRS feed

  • 问题

  • 大家好,帮我看看我以下的代码有什么错误?
    运行到cssStyle.appendChild()这个函数总是出错。

    var cssStyle = document.createElement("style");
    cssStyle.setAttribute("type", "text/css");

    var cssText = "@import url(../../Source/CodeHighlighter/SyntaxHighlighter.css);";
     
    cssStyle.appendChild(document.createTextNode(cssText));

    document.getElementsByTagName("head").item(0).appendChild(cssStyle);


    做最好的自己
    • 已移动 Sheng Jiang 蒋晟 2009年9月20日 3:36 客户端脚本问题 (发件人:ASP.NET 与 AJAX)
    2009年9月20日 1:28

答案

  • 如果是ie
    就使用document .createStyleSheet(' ../../Source/CodeHighlighter/SyntaxHighlighter.css');一行即可。如果是非IE,可以使用你的 appendChild方法。不同的浏览器实现的方法是不同的。
    【孟子E章】
    2009年9月20日 6:05
    版主
  • 可以这样
      window.onload = function() {
            var cssStyle = document.createElement("style");
            cssStyle.setAttribute("type", "text/css");

            var cssText = "@import url(../../Source/CodeHighlighter/SyntaxHighlighter.css);";
       if(ActiveXObject==null )
        {
            cssStyle.appendChild(document.createTextNode(cssText));

            document.getElementsByTagName("head").item(0).appendChild(cssStyle);

        }   
        else
            {
       document.getElementsByTagName("head").item(0).appendChild( document.createStyleSheet('../../Source/CodeHighlighter/SyntaxHighlighter.css'));
            }

    2009年9月20日 9:53
  • 如果是ie
    就使用document .createStyleSheet(' ../../Source/CodeHighlighter/SyntaxHighlighter.css');一行即可。如果是非IE,可以使用你的 appendChild方法。不同的浏览器实现的方法是不同的。
    【孟子E章】

    那您帮我看看,我的代码有问题吗?
    做最好的自己
    问题就是ie不能这样写,已经给你说了:
    要判断浏览器
    if(ie)
    {
    document.createStyleSheet('../../Source/CodeHighlighter/SyntaxHighlighter.css');
    }
    else
    {
    你原来的代码
    }

    【孟子E章】
    2009年9月21日 0:44
    版主

全部回复

  • cssStyle.appendChild(document.createTextNode(cssText)); 改为下面的试试
    cssStyle.src = cssText ;
    知识改变命运,奋斗成就人生!
    2009年9月20日 2:31
    版主
  • 你好 无论是代表页面样式表的style对象还是代表了给定元素所有可能的内嵌样式的当前设置的style都没有这个方法的
    按照的情况你可以直接使用styleSheet;

    var cssStyle =document.createStyleSheet('../../Source/CodeHighlighter/SyntaxHighlighter.css');


    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://hi.baidu.com/1987raymond
    2009年9月20日 2:34
    版主
  • 如果是ie
    就使用document .createStyleSheet(' ../../Source/CodeHighlighter/SyntaxHighlighter.css');一行即可。如果是非IE,可以使用你的 appendChild方法。不同的浏览器实现的方法是不同的。
    【孟子E章】
    2009年9月20日 6:05
    版主
  • 如果是ie
    就使用document .createStyleSheet(' ../../Source/CodeHighlighter/SyntaxHighlighter.css');一行即可。如果是非IE,可以使用你的 appendChild方法。不同的浏览器实现的方法是不同的。
    【孟子E章】

    那您帮我看看,我的代码有问题吗?
    做最好的自己
    2009年9月20日 7:21
  • 可以这样
      window.onload = function() {
            var cssStyle = document.createElement("style");
            cssStyle.setAttribute("type", "text/css");

            var cssText = "@import url(../../Source/CodeHighlighter/SyntaxHighlighter.css);";
       if(ActiveXObject==null )
        {
            cssStyle.appendChild(document.createTextNode(cssText));

            document.getElementsByTagName("head").item(0).appendChild(cssStyle);

        }   
        else
            {
       document.getElementsByTagName("head").item(0).appendChild( document.createStyleSheet('../../Source/CodeHighlighter/SyntaxHighlighter.css'));
            }

    2009年9月20日 9:53
  • 如果是ie
    就使用document .createStyleSheet(' ../../Source/CodeHighlighter/SyntaxHighlighter.css');一行即可。如果是非IE,可以使用你的 appendChild方法。不同的浏览器实现的方法是不同的。
    【孟子E章】

    那您帮我看看,我的代码有问题吗?
    做最好的自己
    问题就是ie不能这样写,已经给你说了:
    要判断浏览器
    if(ie)
    {
    document.createStyleSheet('../../Source/CodeHighlighter/SyntaxHighlighter.css');
    }
    else
    {
    你原来的代码
    }

    【孟子E章】
    2009年9月21日 0:44
    版主
  • 哦。呵呵。我把您的黑体字理解错了。我以为appendChild方法都可以使用呢!
    做最好的自己
    2009年9月21日 6:03