我已经坚持了好几个小时,并希望得到一些帮助。我使用tinyMCE插件使用syntaxhl 2.1.382。{/ p>
使用非突出显示的代码,一切都很好用。但是,当使用突出显示的代码setContent
时,我不会感到高兴。我希望这里有一些我看不到的东西。
$(window).load(function() {
tinyMCE.activeEditor.setContent('<p>here is some code:</p>
<pre class="brush: jscript;fontsize: 100; first-line: 1; ">var fs = require("fs");
module.exports = function(app, service){
fs.readdir(__dirname + "/controllers", function(err, files){
if (err) throw err;
files.forEach(function(file){
var name = file.replace(".js", "");
require("./controllers/" + name)(app, service);
});
});
};</pre>');
});
然而,这不起作用。我试图调试javascript,但我遇到麻烦(至少使用chrome dev工具)。
没有错误消息,只是没有填充的内容。我已尝试使用{format:'raw'},如tinyMCE文档中所述,但没有运气。
我希望其他人试图这样做并成功。
答案 0 :(得分:1)
我不知道高亮插件,但我猜它会在编辑器iframes头部插入一个特殊的样式表。这导致了特殊html标签a.s.o的样式(突出显示)。 在这种情况下,内容不会受到影响/更改。
使用此插件时,您将无法获得突出显示的内容。
答案 1 :(得分:1)
不幸的是,我从未得到上述代码。我认为<pre>
标签必须在浏览器中接管并搞砸了。此外,我仍然有点怀疑线路中断造成伤害。 @Thariama是一些很好的帮助,但是,在阅读了有关extended_valid_elements,valid_elements和valid_children的所有文档,并且通过多种方式配置tinyMCE init之后,我无法使其工作。
然而,我确实为我找到了解决方案。事实证明,如果我直接使用编码 html设置<textarea>
(因此<pre>
标记变为<pre class="brush: bash;fontsize: 100; first-line: 1; ">
),那么它可以正常工作。由于这是有效的,并且在初始化tinyMCE之后不得不执行setContent
,这对我有用。
语法突出显示效果很好。我在搜索时遇到了this link是否有其他人想要这样做。