在EPiServer中的TinyMCE中允许自定义HTML属性

时间:2012-07-09 07:17:59

标签: asp.net tinymce episerver

仅限EPiServer:

我们的客户正在尝试在TinyMCE编辑器中将自定义属性添加到div标签 - 他们切换到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 个答案:

答案 0 :(得分: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],它应该可以正常工作。

答案 1 :(得分:2)

您有两个选择:

<强>第一

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

允许在div标签中使用titledata-test

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的默认值,它们都很好)。

答案 2 :(得分:1)

答案 3 :(得分:0)

以下对我有用:

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

配置无变化。