有谁知道如何在TinyMCE中使用自定义大写标签?似乎TinyMCE不喜欢大写标签,即使它们已被声明为有效。这是我的TinyMCE配置:
tinyMCE.init({
mode: "specific_textareas",
theme: "advanced",
language: "en",
theme_advanced_toolbar_location: "top",
theme_advanced_toolbar_align: "left",
theme_advanced_statusbar_location: "bottom",
theme_advanced_buttons1: "bold,italic,|,sub,sup,|,charmap,|,table,|,code",
theme_advanced_path: false,
theme_advanced_resizing: true,
plugins: "fullscreen,paste,table",
paste_auto_cleanup_on_paste : true,
relative_urls: false,
width: "300",
height: "300",
theme_advanced_resizing_min_height : "10",
force_br_newlines : true,
force_p_newlines : false,
forced_root_block : '',
entity_encoding: "raw",
valid_elements : "B/strong,I/em,SUP/sup,SUB/sub",
extended_valid_elements: "CUSTOM"
})
输入类似
的内容<CUSTOM>this is a custom tag</CUSTOM>
不起作用,因为&lt; CUSTOM&gt;被剥夺了。
如果我将init脚本更改为extended_valid_elements: "custom"
,那么它可以正常工作 - 我可以输入
<custom>this is a custom tag</custom>
并且&lt;自定义被保留。
没有人知道任何解决方法吗?
谢谢!
答案 0 :(得分:1)
以下是如何操作的说明(反向模拟):http://www.codingforums.com/archive/index.php/t-148450.html
您应该使用tinymce onInit事件并将标签更改回大写字母使用onSubmit或onSave(或者您可以在任何其他合适的代码位置上提交内容之前更改内容)。 要添加此处理程序,请使用tinymce setup configuration parameter
setup : function(ed) {
ed.onInit.add(function(ed, evt) {
$(ed.getBody()).find('p').addClass('headline');
// get content from editor source html element
var content = $(ed.id).html();
// tagname to lowercase
content = content.replace(/< *\/?(\w+)/g,function(w){return w.toLowerCase()});
ed.setContent(content);
});
ed.onSubmit.add(function(ed, evt) {
$(ed.getBody()).find('p').addClass('headline');
// get content from edito
var content = ed.getContent();
// tagname to toUpperCase
content = content.replace(/< *\/?(\w+)/g,function(w){return w.toUpperCase()});
// write content to html source element (usually a textarea)
$(ed.id).html(content );
});
},