TinyMCE中的forced_root_block选项
发布时间:2020-12-14 02:12:36 所属栏目:Linux 来源:网络整理
导读:我正在尝试使用contenteditable div实现自定义WYSIWYG编辑器. 我面临的一个主要问题是浏览器处理ENTER键击(换行符)的方式不一致. Chrome插入 div,Firefox插入 br和IE插入 p.我正在看看TinyMCE,它有一个名为forced_root_block的配置选项.将forced_root_block
我正在尝试使用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 = /^[ trn]+/; endWhiteSpaceRegExp = /[ trn]+$/; allWhiteSpaceRegExp = /[ trn]+/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’键击本身并停止传播/默认浏览器命令. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |