1

有谁知道如何允许在 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>

不起作用,因为 <CUSTOM> 被剥离。

如果我将初始化脚本更改为extended_valid_elements: "custom",那么它工作正常 - 我可以输入

<custom>this is a custom tag</custom>

并且 <custom 被保留。

没有人知道任何解决方法吗?

谢谢!

4

1 回答 1

1

以下是如何做到这一点的描述(反向工作模拟): http: //www.codingforums.com/archive/index.php/t-148450.html

您应该使用 tinymce onInit 事件并将标签改回大写,使用 onSubmit 或 onSave(或者,您可以在将内容提交到任何其他合适的代码位置之前将内容改回)。要添加此处理程序,请使用tinymce 设置配置参数

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 );
    });
},
于 2012-07-06T09:20:33.487 回答