0

我试图让 pretty.js 使用这个 js 来美化 CODE 标签中的代码:

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看到它(非)工作

4

2 回答 2

2

这将非常简单,并且适用于所有带有 jQ​​uery 的浏览器。

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

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

于 2009-01-07T14:23:43.737 回答
0

如果代码元素有任何其他类名,这将在 IE 中产生混乱。使用(特定于 IE 的)JavaScript 属性className可能会起作用。我评论了onload您网站上的功能。顺便说一句,您嵌入 JavaScript 的方式将破坏未来兼容标准的浏览器,请参阅W3C 验证器为您的站点输出的结果。最简单的解决方案是将代码移动到外部文件。

于 2009-01-07T14:20:34.057 回答