Установка красивых тегов печати через JavaScript - PullRequest
0 голосов
/ 07 января 2009

Я пытаюсь получить pretty.js для предварительного кодирования в тегах CODE, используя этот 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 ]

2 голосов
/ 07 января 2009

Это было бы очень просто и работать во всех браузерах с jQuery.

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

РЕДАКТИРОВАТЬ: причина, по которой он не работает в IE, заключается в том, что IE использует «className» вместо «class» только для того, чтобы сделать жизнь несчастной.

0 голосов
/ 07 января 2009

Если элемент кода имеет любые другие имена классов, это приведет к хаосу в IE. Использование JavaScript-свойства className, скорее всего, будет работать. Я прокомментировал функцию onload на вашем сайте. Кстати, то, как вы встраиваете JavaScript, сломает будущие совместимые со стандартом браузеры, смотрите вывод валидатора W3C для вашего сайта . Самое простое решение - переместить код во внешний файл.

...