contenteditable
<div>
을 사용하여 맞춤 WYSIWYG 편집기를 구현하려고합니다.TinyMCE의 forced_root_block 옵션
내가 직면 한 주요 문제 중 하나는 브라우저가 일관성없는 방식으로 처리하는 것입니다. 키 스트로크 (줄 바꿈). Chrome은 <div>
을 삽입하고 Firefox는 <br>
을 삽입하고 IE는 <p>
을 삽입합니다. TinyMCE를 살펴 보았는데 forced_root_block
이라는 구성 옵션이 있습니다. forced_root_block
에서 div
으로 설정하면 모든 주요 브라우저에서 실제로 작동합니다. 누군가가 TinyMCE의 forced_root_block
옵션이 브라우저에서 어떻게 구현되는지 알고 있습니까?
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;
};
};
이 분명히 루트 블록 요소를 생성을 담당 : TinyMCE를 소스 (/tiny_mce/classs/dom/DomParser.js) 다음을 찾을 수에서
+1 좋은 질문입니다. – Thariama