zoukankan      html  css  js  c++  java
  • 【ngx-ueditor】百度编辑器按下Shift键不触发contentChange事件

    背景:基于Angular 6,引入ngx-ueditor

    发现现象:如果以Shift键+任意键结尾,则ngModel会丢失包含shift键的字符

                     例如:输入“ABC+AB++++”,则ngModel中只能获得“ABC+AB”,丢失最后的几个+号

    原因:按下Shift键不触发编辑器的contentChange事件,

               但如果输入shift键+任意键后,又输入其他正常字符,触发了contentChange事件,则可以获得完整文本,

               即,若不是以shift键+任意键结尾,就不存在问题

    解决方案一:在保存的时候,调用ueditor的getContent()方法,赋值给,接口参数,手动获取完整文本保存

    Html:

     <ueditor [(ngModel)]="content" #full_content></ueditor>

           定义ViewChild:

    @ViewChild('full_content') full_content: UEditorComponent;

      保存的时候,获取完整文本,传到接口参数:

     let content = this.full_content.Instance.getContent();

    缺点:每次使用ueditor插件都要在提交接口的时候,再获取一次完整文本,代码重复,且对开发人员来说,Bug修复需要修改每个使用uEditor的页面,繁琐,易出错

            

    解决方案二:  需要修改Ueditor.all.js(V1.4.3.3版本)文件的三处位置,具体如下:

    7487行:删除“|| evt.shiftKey”条件判断;

    14390行:删除me.keydown事件的“ && !evt.shiftKey”条件判断;

    14429行:删除me.keydown事件的“&& !evt.shiftKey”条件判断; 

    但由于考虑修改插件源码不利于插件维护和插件升级,故没有采取第二种方案。

    参考资料:https://github.com/cipchk/ngx-ueditor/blob/master/README.md

  • 相关阅读:
    [HAOI2008]硬币购物
    [NOI2006]网络收费
    [HNOI2014]米特运输
    Codeforces Round #536 (Div. 2)
    [洛谷P3931]SAC E#1
    [洛谷P1402]酒店之王
    [洛谷P4174][NOI2006]最大获利
    [CF1082G]Petya and Graph
    [CF1095F]Make It Connected
    [CF1083B]The Fair Nut and Strings
  • 原文地址:https://www.cnblogs.com/alwaysblog/p/11283752.html
Copyright © 2011-2022 走看看