我将tinyMCE与'noneditable'插件一起使用。
当我在tinyMCE编辑器中标记包含不可编辑区域的某些文本,然后将某种格式应用于此选择时,格式将不会应用于 不可编辑的片段。
例如:
我选择:
start Text <span class="mceNonEditable" data-mce-contenteditable="false">not editable area</span> end text
我想把它变成粗体,结果是:
<strong>start Text </strong><span class="mceNonEditable" data-mce-contenteditable="false">not editable area</span><strong> end text</strong>
我的期望和我需要的是以下内容:
<strong>start Text <span class="mceNonEditable" data-mce-contenteditable="false">not editable area</span> end text</strong>
我可以做些什么,也可以格式化不可编辑的片段?
(我使用tinyMCE 4.1.10)
答案 0 :(得分:1)
tinymce论坛中的worakaround是操纵文件: 的 /tinymce/classes/Formatter.js 强>
在函数中:
function applyRngStyle(rng, bookmark, node_specific)
{
....
// Is it valid to wrap this item
// TODO: Break this if up, too complex
if (contentEditable && !hasContentEditableState && isValid(wrapName, nodeName) && isValid(parentName, wrapName) &&
!(!node_specific && node.nodeType === 3 &&
node.nodeValue.length === 1 &&
node.nodeValue.charCodeAt(0) === 65279) &&
!isCaretNode(node) &&
(!format.inline || !isBlock(node))) {
// Start wrapping
.....
}
我必须取消注释&#34; contentEditable&amp;&amp; !hasContentEditableState 强>&#34;
function applyRngStyle(rng, bookmark, node_specific)
{
....
// Is it valid to wrap this item
// TODO: Break this if up, too complex
// This are the changes that I made:
if (/*contentEditable && !hasContentEditableState &&*/ isValid(wrapName, nodeName) && isValid(parentName, wrapName) &&
!(!node_specific && node.nodeType === 3 &&
node.nodeValue.length === 1 &&
node.nodeValue.charCodeAt(0) === 65279) &&
!isCaretNode(node) &&
(!format.inline || !isBlock(node))) {
// Start wrapping
.....
}
答案 1 :(得分:0)
我知道这是一个有点老的问题,但仍然是该问题的第一批搜索结果之一...
我们在外队遇到同样的问题,
我们通过下拉选择和内容添加了不可编辑的文本
,当我们在编辑器中选择文本范围并尝试格式化时,不可编辑元素将被忽略。
我通过将不可编辑的内容(span元素)与另一个可编辑的范围包装在一起来解决了此问题,
现在,当选择文本范围时,外部范围将获得所选格式并影响内部范围(不可编辑)。
<span class="someClass"><span class="mceNonEditable">Non Editable Text</span></span>
*外部元素必须具有tinymce不会清除的类。