2012-07-09 259 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 
{ 
} 

在配置沒有變化。