我发现了一个关于SyntaxHighlighter的问题。
但是,我正在谈论jquery插件而不是https://github.com/RichGuk/syntaxhl
我想在tinyMCE中突出显示源代码 我添加以下按钮:
ed.addButton('srccd', {
title: 'Source Code',
image: 'sourcecode.png',
onclick: function() {
ed.focus();
var newSRCjq='<pre id="s1" class="highlight">'+ ed.selection.getContent() + '</pre>';
ed.selection.setContent(newSRCjq);
$.SyntaxHighlighter.init({})
}
});
我还使用另一个插件(片段),而不是init调用,我调用以下函数:
$('iframe').contents().find('#s1').snippet("java",{style:'kwrite',box:"1"});
并且我没有达到预期的结果。
注意:我不会忘记导入所需的JS&amp;上面插件的CSS
答案 0 :(得分:0)
一天后: 让我们介绍一下基于 JQuery Compiler的编译器 jQuery Syntax Highlighter v2.0.0:
如何使用
而不是:
$('pre').snippet('java',{box:"1-2"});
添加本地或会话参数:
$('pre').snippetcache('local','java',{box:"1-2"});
==&gt;这意味着你有pre
个元素。当您运行上面的代码片段时,我的插件将使用jQuery Syntax Highlighter
编译代码,然后保存呈现的代码。因此,如果另一个pre
具有相同的代码(内部文本),例如先前编译的pre
之一,则编译器将从其缓存中检索呈现的代码。
但是,当您刷新页面时,将删除缓存。如果要使用有状态编译器,请使用会话参数值而不是本地
$('pre').snippetcache('session','java',{box:"1-2"});
这个插件在iframe中作为tinyMCE非常有用。事实上,试试这个:
ed.addButton('srccd', {
title: 'Source Code',
image: 'sourcecode.png',
onclick: function() {
ed.focus();
//You should have an ID which is generated automatically
var newSRCjq='<pre id="s1" class="highlight">'+ ed.selection.getContent() + '</pre>';
ed.selection.setContent(newSRCjq);
// iframe selected is the frame of TinyMCE
$('iframe').contents.find('pre#s1').snippetcache('local','java',{box:"1-2"});
}
});