javascript - 如何在tinymce的HTML源代码编辑器中显示不同的元素?

标签 javascript tinymce

我想将自己的控件添加到tinymce编辑器(例如 <editable /> )。 该控件必须显示如下形式:

<div class="editable">
<label>Test<input type="text" /></label>
<label>Test2<input type="text" /></label>
</div>

暂时没有问题。我能做到。 但我需要将其设为只读(也没有问题 - 使用不可编辑的插件)

我的问题是: 如果用户按“编辑 HTML 源”,我必须显示 <editable />仅元素(没有标签和文本框)。

我不知道这是否可能,但期待 Embeded Media元素 - 它在编辑器中显示图像,但在 HTML 源代码中将其替换为 iframe。

最佳答案

我的结果稍微简单一些。 我只是删除 <cms:control />来自 HTML 源代码编辑器的标记内容。

在tinymce init 上进行以下操作:

 ed.onPreInit.add(function () {
        ed.parser.addNodeFilter('cms:control', function (nodes) {
            var i = nodes.length;

            while (i--)
                objectToHtml(nodes[i], ed.schema);
        });

        ed.serializer.addNodeFilter('cms:control', function (nodes, name, args) {
            var i = nodes.length, 
                node;

            while (i--) {
                node = nodes[i];
                htmlToObject(node, args);
            }
        });
    });

    function objectToHtml(node, schema) {
        node.empty();

        var html = '<label>Test<input type="text" /></label>' +
                   '<label>Test2<input type="text" /></label>';                     

        var parser = new tinymce.html.DomParser({validate: true}, schema);
        var rootNode = parser.parse(html);

        node.append(rootNode);           
    }

    function htmlToObject(node, args) {
        node.empty();           
    }

关于javascript - 如何在tinymce的HTML源代码编辑器中显示不同的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15405221/

相关文章:

javascript - 为什么我的全局自定义 jQuery 函数没有被调用?

mysql - Django 字符集和编码

tinymce - 无法在目标节点 : loading stylesheet crashes 上初始化 TinyMCE

javascript - 如何使用 select2 和 Twig 模板从选择列表中设置选定的新值?

javascript - 来自不属于范围的模板的Angular JS调用函数

javascript - 循环遍历数组以记录单击时的元素时出现问题

javascript - 在聚焦和模糊时更改 TinyMCE 的边框颜色

django - 为什么 TinyMCE 在 (django) {% %} 标签之间插入 <span> </span>?

tinymce - 如何配置TinyMCE以允许内联元素内有 block 级元素?

javascript - 如何在 jQuery 日期选择器中指定多个选项