【问题标题】:CQ5 richtext 'ENTER' key event inserts <p> tag on every lineCQ5富文本'ENTER'键事件在每一行插入<p>标签
【发布时间】:2015-12-11 15:27:40
【问题描述】:

要覆盖'ENTER'键事件行为以NOT为每行文本添加&lt;p&gt;&lt;/p&gt;标签,KeyPlugin.js中的代码必须在以下块中更改

// handle ENTER key this.mustEnsureBlocks = false; if (e.isEnter() && !cancelKey) {

keyPlugin.js 位于 /libs/cq/ui/rte/core/plugins/KeyPlugin.js 。

有人告诉我,如何覆盖/覆盖代码块。

谢谢, 斯里

【问题讨论】:

    标签: extjs aem


    【解决方案1】:

    您需要将文件从/libs/cq/ui/rte/core/plugins/KeyPlugin.js 复制到/apps/cq/ui/rte/core/plugins/KeyPlugin.js 并覆盖必要的代码块(负责插入段落)

    或者您可以将侦听器添加到您的组件中,这将删除 &lt;p&gt;&lt;/p&gt; 标签:

    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

    上查看更多信息

    【讨论】:

    • 你能告诉我更多关于监听器删除

      标签的信息吗?谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多