5

仅限 EPiServer:

我们的客户正在尝试将自定义属性添加到 TinyMCE 编辑器中的 div-tag - 他们切换到 HTML 模式,进行更改并保存页面。然后删除属性。像这样清洗 HTML 是 TinyMCE 的标准行为,并且可以将其配置为允许自定义标签属性。

我的问题是如何在 EPiServer中配置 TinyMCE以允许自定义 HTML 属性?我不知道在哪里可以挂钩 TinyMCE 的初始化。并且将 div 添加到 episerver.config 中的“安全”标签列表中也不起作用(请参阅 uiSafeHtmlTags)。

例子:

<div class="fb-like" data-href="http://oursite" data-send="false"></div>

变得刚刚

<div class="fb-like"></div>

从 TinyMCE 文档中,关于如何向标签添加自定义属性:http ://www.tinymce.com/wiki.php/Configuration:extended_valid_elements

4

4 回答 4

10

我有这门课

using EPiServer.Editor.TinyMCE;

namespace SomeNamespace
{
    [TinyMCEPluginNonVisual(
        AlwaysEnabled = true, 
        EditorInitConfigurationOptions = "{ extended_valid_elements: 'iframe[src|frameborder=0|alt|title|width|height|align|name]' }")]
    public class ExtendedValidElements { }
}

这在episerver.config中:

<episerver>
....
<tinyMCE mergedConfigurationProperties="valid_elements, extended_valid_elements, invalid_elements, valid_child_elements" />
</episerver>

在最近的一个项目中。如果将 iframe 部分更改为 div[data-href|data-send],它的工作方式应该相同。

于 2012-07-09T16:28:54.993 回答
2

您有 2 个选项:

第一的

[TinyMCEPluginNonVisual(EditorInitConfigurationOptions = "{ extended_valid_elements: 'div[title|data-test]' }")]

将允许titledata-test在 div 标签中。

div[*]将允许div 标签中的所有属性。

第二

  • 让你的 TinyMCE 插件继承自 IDynamicConfigurationOptions
  • 实现这样的功能:

    public IDictionary<string, object> GetConfigurationOptions(){
        var customSettings = new Dictionary<string, object>();
        customSettings.Add("extended_valid_elements", "div[*]");
        return customSettings;
    }
    

无需在 .config 文件中配置任何内容(使用 EPiServer 的默认值,它们都可以)。

于 2013-04-10T02:29:01.877 回答
0

以下对我有用:

[TinyMCEPluginNonVisual(AlwaysEnabled = true, EditorInitConfigurationOptions = "{ extended_valid_elements: 'div[*]' }", PlugInName = "ExtendedValidElements", ServerSideOnly = true)]
public class TinyMceExtendedValidElements
{
}

配置没有变化。

于 2015-11-19T15:17:31.980 回答