要将“ENTER”键事件行为覆盖为 NOT 以为每行文本添加<p></p>
标记,KeyPlugin.js中的代码必须在以下块
// handle ENTER key
this.mustEnsureBlocks = false;
if (e.isEnter() && !cancelKey) {
keyPlugin.js位于/libs/cq/ui/rte/core/plugins/KeyPlugin.js。
有没有人告诉我,如何覆盖/覆盖代码块。
谢谢你, 斯
答案 0 :(得分:0)
您需要将文件从/libs/cq/ui/rte/core/plugins/KeyPlugin.js
复制到/apps/cq/ui/rte/core/plugins/KeyPlugin.js
并覆盖必要的代码块(负责插入段落)
或者您可以向您的组件添加侦听器,这将删除<p></p>
标签:
JavaScript方式:
编写以下函数:
function removeUnecessartyTagsFromMyComponent(field) {
var value = field.getValue();
var pOpend = /<p[^>]*>/g;
var pClosed = /<\/p>/g;
var correctValue = value.replace(pOpend, "").replace(pClosed, "");
if (value != correctValue) {
field.setValue(correctValue);
}
}
在你的对话框中使用它:
<photoBy
jcr:primaryType="cq:Widget"
name="./myComponent"
title="My Copmonent"
fieldLabel="Enter text"
xtype="richtext">
<listeners
jcr:primaryType="nt:unstructured"
valid="function(field)removeUnecessartyTagsFromMyComponent(field);}"/>
</photoBy>
请注意 - 您可以使用其他听众代替有效,请参阅CQ Widget API doc