我想要做的是将双br转换为p in tinymce 4这就是我放入我的tinymce配置
force_br_newlines : true,
force_p_newlines : false,
forced_root_block: false,
language : 'fr_FR',
setup : function(ed) {
ed.on('onPostProcess', function(ed, o) {
o.content = o.content.replace(/<br\s?\/?><br\s?\/?>/gi, '</p><p>');
});
但没有任何事情发生,我不知道我希望在tinymce 4中有可能 例如,如果我有:
This is a test 1<br /><br />
This is a test 2<br /><br />
This is a test 3<br /><br />
This is a test 4<br /><br />
它会自动转换为:
<p>This is a test 1</p>
<p>This is a test 2</p>
<p>This is a test 3</p>
<p>This is a test 4</p>
答案 0 :(得分:0)
使用DOM时远离Regular Expressions。使用Node API更改文档。
您可以检查接下来的两个兄弟姐妹是否休息并包装文本内容 有一个段落,同时 - 删除休息。
Dispozice
&#13;
replaceDoubleBreaks(document.getElementById('content'));
function replaceDoubleBreaks(target) {
var children = target.childNodes;
if (children.length > 0) {
var currIndex = 0, currNode = children[currIndex];
while (currNode != null) {
// https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType
if (currNode.nodeType === Node.TEXT_NODE) {
if (isBreak(currNode.nextSibling) && isBreak(currNode.nextSibling.nextSibling)) {
var p = document.createElement('p');
p.innerHTML = currNode.textContent.trim();
currNode.replaceWith(p);
for (var i = 0; i < 2; i++) target.removeChild(children[currIndex + 1]);
}
}
currIndex++;
currNode = children[currIndex];
}
}
}
function isBreak(el) {
return el && el.nodeType === Node.ELEMENT_NODE && el.tagName.toLowerCase() === 'br';
}
&#13;
p { font-style: italic; }
&#13;
以下是使用TinyMCE
的示例