tinyMCE setContent不使用语法突出显示的代码

时间:2012-03-05 00:52:40

标签: javascript tinymce syntax-highlighting

我已经坚持了好几个小时,并希望得到一些帮助。我使用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文档中所述,但没有运气。

我希望其他人试图这样做并成功。

2 个答案:

答案 0 :(得分:1)

我不知道高亮插件,但我猜它会在编辑器iframes头部插入一个特殊的样式表。这导致了特殊html标签a.s.o的样式(突出显示)。 在这种情况下,内容不会受到影响/更改。

使用此插件时,您将无法获得突出显示的内容。

答案 1 :(得分:1)

不幸的是,我从未得到上述代码。我认为<pre>标签必须在浏览器中接管并搞砸了。此外,我仍然有点怀疑线路中断造成伤害。 @Thariama是一些很好的帮助,但是,在阅读了有关extended_valid_elements,valid_elements和valid_children的所有文档,并且通过多种方式配置tinyMCE init之后,我无法使其工作。

然而,我确实为我找到了解决方案。事实证明,如果我直接使用编码 html设置<textarea>(因此<pre>标记变为&lt;pre class=&quot;brush: bash;fontsize: 100; first-line: 1; &quot;&gt;),那么它可以正常工作。由于这是有效的,并且在初始化tinyMCE之后不得不执行setContent,这对我有用。

语法突出显示效果很好。我在搜索时遇到了this link是否有其他人想要这样做。