在Episerver 9中自定义TinyMCE编辑器

时间:2016-09-09 14:38:36

标签: tinymce episerver

我正在研究Episerver 9.我有一个要求,即用户可以将内容(包括HTML标签)复制到TinyMCE编辑器中。

我只想粘贴文字内容。默认情况下,应自动过滤掉HTML标记。

有没有办法用TinyMCE实现这个目标?

2 个答案:

答案 0 :(得分:2)

您可以使用TinyMCEPluginNonVisual属性在Episerver中注册自定义TinyMCE插件。通过将AlwaysEnabled设置为false,您可以使用属性设置来确定是否应为特定编辑器/ XHTML属性启用插件。

[TinyMCEPluginNonVisual(AlwaysEnabled = false, PlugInName = "customplugin")]
public class MyCustomPlugin
{

}

您的实际TinyMCE插件(即JavaScript代码)可能如下所示:

(function (tinymce, $) {

    tinymce.create('tinymce.plugins.customplugin', {

        init: function (editor, url) {

            editor.onPaste.add(function (editor, event) {

                if (!event.clipboardData || !event.clipboardData.items) {
                    return;
                }

                // TODO Modify event.clipboardData, for example to strip out HTML tags

            });
        }
    });

    // Register plugin
    tinymce.PluginManager.add('customplugin', tinymce.plugins.customplugin);

}(tinymce, epiJQuery));

虽然这不是一个完整的例子,但它应该让你开始朝着正确的方向前进。

您还应该查看official documentation

修改:如果您只想更改paste_as_text设置,可以注册插件并通过TinyMCEPluginNonVisual属性设置配置:

[TinyMCEPluginNonVisual(EditorInitConfigurationOptions = "{ paste_as_text: true }")]
public class PasteAsTextPlugin
{

}

答案 1 :(得分:1)

假设您正在加载$ mvn -Dhk2test test 插件,您可以强制TinyMCE始终使用以下内容粘贴为纯文本:

paste

https://www.tinymce.com/docs/plugins/paste/#paste_as_text

我认为Episerver为您提供了一些操作TinyMCE配置的方法。将tinymce.init({ ... plugins: "paste", paste_as_text: true ... }); 选项添加到该配置应该可以满足您的需求。