TinyMCE中的forced_root_block选项

TinyMCE中的forced_root_block选项,第1张

概述我正在尝试使用contenteditable< div>实现自定义WYSIWYG编辑器. 我面临的一个主要问题是浏览器处理ENTER键击(换行符)的方式不一致. Chrome插入< div>,Firefox插入< br>和IE插入< p>.我正在看看TinyMCE,它有一个名为forced_root_block的配置选项.将forced_root_block设置为div实际上适用于所有主要浏览器. 我正在尝试使用contenteditable< div>实现自定义WYSIWYG编辑器.

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

解决方法 在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中的forced_root_block选项全部内容,希望文章能够帮你解决TinyMCE中的forced_root_block选项所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/1032375.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存