在AJAX加载的内容上使用语法Highlighter

时间:2011-06-24 17:32:00

标签: javascript syntax-highlighting

如何在'window'发出'load'事件后加载内容时使用Alex Gorbatchev的Syntax Highlighter?我这样想:

    $.ajax({
        url:    file,
        success: function(data) {
            $('.fileName').text(file);
            $('#fileSource > pre').text(data);
            SyntaxHighlighter.all();
        }
    });

......但它不起作用。我需要提一下,ajax调用可以在页面加载后随时发生。

此致

3 个答案:

答案 0 :(得分:38)

- SyntaxHighlighter.all()绑定窗口加载。因此,如果要在页面加载时突出显示元素,请使用此方法。

每当您调用此方法时,

- SyntaxHighlighter.highlight()都会突出显示元素。所以你最好使用它。

- SyntaxHighlighter.highlight()有两个参数,两者都是可选的。

<强> 1。参数 globalParams

@param {Object} globalParams,可覆盖元素参数的可选参数。仅在指定元素时使用。

<强> 2。参数元素

@param {Object}元素,要突出显示的可选元素。如果未提供,则突出显示当前文档中的所有元素。

- 有关此内容的更多信息,请转到 syntaxhighlighter_3.0.83 / src / shCore.js

答案 1 :(得分:5)

我在他的一个例子中找到了我的问题的答案:

    $.ajax({
        url:    file,
        success: function(code) {
            $('.fileName').text(file);
            var brush = new SyntaxHighlighter.brushes.JScript(),
                html;
            brush.init({ toolbar: false });
            html = brush.getHtml(code);
            document.getElementById('source').innerHTML = html; 
        }
    });

答案 2 :(得分:-1)

只需添加此部分

$(document).ready(function () {
        $('.code').each(function () {
            SyntaxHighlighter.all();
        });
    });