【问题标题】:forced_root_block option in TinyMCETinyMCE中的forced_root_block选项
【发布时间】:2012-06-14 16:36:29
【问题描述】:

我正在尝试使用contenteditable <div> 实现自定义的所见即所得编辑器。

我面临的主要问题之一是浏览器处理 ENTER 击键(换行符)的方式不一致。 Chrome 插入<div>,Firefox 插入<br>,IE 插入<p>。我正在查看 TinyMCE,它有一个名为 forced_root_block 的配置选项。将forced_root_block 设置为div 实际上适用于所有主要浏览器。有人知道 TinyMCE 中的 forced_root_block 选项如何跨浏览器实现吗?

【问题讨论】:

    标签: tinymce contenteditable


    【解决方案1】:

    在 tinymce 源代码 (/tiny_mce/classs/dom/DomParser.js) 中,您会发现以下内容:

    rootBlockName = "forced_root_block" in args ? args.forced_root_block : settings.forced_root_block;
    
            whiteSpaceElements = schema.getWhiteSpaceElements();
            startWhiteSpaceRegExp = /^[ \t\r\n]+/;
            endWhiteSpaceRegExp = /[ \t\r\n]+$/;
            allWhiteSpaceRegExp = /[ \t\r\n]+/g;
    
            function addRootBlocks() {
                var node = rootNode.firstChild, next, rootBlockNode;
    
                while (node) {
                    next = node.next;
    
                    if (node.type == 3 || (node.type == 1 && node.name !== 'p' && !blockElements[node.name] && !node.attr('data-mce-type'))) {
                        if (!rootBlockNode) {
                            // Create a new root block element
                            rootBlockNode = createNode(rootBlockName, 1);
                            rootNode.insert(rootBlockNode, node);
                            rootBlockNode.append(node);
                        } else
                            rootBlockNode.append(node);
                    } else {
                        rootBlockNode = null;
                    }
    
                    node = next;
                };
            };
    

    这显然负责创建根块元素。 我 99% 确信 tinymce 会自行处理“ENTER”键击并停止传播/默认浏览器命令。

    【讨论】:

    • 是的,你是对的。我对 tinymce 源代码进行了更深入的了解。他们有一个名为“EnterKey.js”的类。这个类的主要功能是'handleEnterKey'。 Tinymce 陷阱
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多