仅限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
答案 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标签中使用title
和data-test
。
div[*]
将允许div标签中的所有属性。
<强>第二强>
实现这样的功能:
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
{
}
配置无变化。