代码之家  ›  专栏  ›  技术社区  ›  Sam

通过javascript设置漂亮的打印标记

  •  0
  • Sam  · 技术社区  · 17 年前

    我试图让pretty.js使用以下js在代码标签中美化代码:

    onload_functions.push(function() {
        var node_list=document.getElementsByTagName('code');
        for (i=0; i < node_list.length; i++) {
            node_list[i].setAttribute('class','prettyprint');
        }
        prettyPrint();
    });
    

    这对Firefox很好:)但IE没有。 我做错了什么?

    你可以看到它(不)在工作 http://sam.xnet.tk

    2 回复  |  直到 17 年前
        1
  •  2
  •   Steve Losh    17 年前

    这将非常简单,可以在所有使用jQuery的浏览器中使用。

    $(function() {
        $('code').addClass('prettyprint');
        prettyPrint();
    });
    

    编辑:它在IE中不起作用的原因是IE使用“className”而不是“class”,只是为了让生活变得悲惨。

        2
  •  0
  •   phihag    17 年前

    如果代码元素有任何其他类名,这将在IE中产生混乱。使用(IE特定的)JavaScript属性 className 可能会奏效。 onload 在你的网站上的功能。 顺便说一句,嵌入JavaScript的方式将打破未来标准兼容浏览器,请参阅 W3C validator's output for your site . 最简单的解决方案是将代码移动到外部文件。