在 tinyMCE 中,将格式应用于非编辑区域
In tinyMCE apply format to noneditabel areas
我将tinyMCE与"不可编辑"插件一起使用。
当我在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>
我能做些什么来格式化不可编辑的片段?
(我使用微小的MCE 4.1.10)
我知道这是一个有点老的问题,但仍然作为该问题的第一个搜索结果之一弹出......
我们在团队中遇到了同样的问题,
我们通过下拉选择向内容添加了不可编辑的文本,就像发生的那样
当我们在编辑器中选择文本范围并尝试格式化时,不可编辑的元素被忽略了。
我通过将不可编辑的内容(span 元素)与另一个可编辑的跨度包装来解决它,现在当选择文本范围时,
外部范围将获取所选格式并影响内部范围(不可编辑)。
<span class="someClass"><span class="mceNonEditable">Non Editable Text</span></span>
* 外部元素必须具有 Tinymce 不会清除它的类。
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
.....
}
我不得不取消注释"contentEditable &&!hasContentEditableState"
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
.....
}
相关文章:
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 如何将返回的值应用于多个不同位置的多个选择器
- ThreeJS将画布中的文本渲染为纹理,然后应用于平面
- 如何使jQuery中的悬停函数单独应用于数据库映像
- 如何将jquery函数仅应用于大屏幕
- 将jQuery事件应用于所有类元素
- 在将绑定应用于控制器之后,是否会发出Angular$scope事件
- 如何在ExtJs中获得将应用于给定类列表的样式
- 将 CSS 应用于禁用的输入按钮
- 如何从应用于正文的css中排除特定的表单
- jQuery+Android.将功能(Touchstart、touchmove)应用于实时加载的内容
- 将敲除绑定应用于模板,并将结果作为字符串获取
- 如何将Angular2管道应用于动态内容
- 动画功能不应用于每个元素
- 仅将JavaScript应用于部分代码(例如菜单)
- 将iframe中的css类应用于主文档
- jQuery:如何在没有for循环的情况下将事件处理程序应用于$('#text'+'任意整数
- 如果使用jQuery验证器插件找到单选按钮,则将不同的addMethod应用于字段
- 如何在角度可编辑中应用于更改事件
- 在 tinyMCE 中,将格式应用于非编辑区域