gpt4 book ai didi

tinymce - TinyMCE 中的 force_root_block 选项

转载 作者:行者123 更新时间:2023-12-04 21:21:45 25 4
gpt4 key购买 nike

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

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

最佳答案

在 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 - TinyMCE 中的 force_root_block 选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11037537/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com