2012-07-09 252 views
5

只有EPiServer:允许在TinyMCE的自定义HTML属性在EPiServer

我们的客户正试图添加自定义属性在TinyMCE的编辑一个div标签 - 他们切换到HTML模式,使修改并保存网页。然后这些属性被删除。像这样清洗HTML是TinyMCE的标准行为,并且可以将其配置为允许自定义标签属性。

我的问题是如何配置的TinyMCE 在EPiServer允许自定义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

回答

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],它的工作原理应该相同。

2

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

0

以下为我工作:

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

在配置没有变化。