李堇 2022-02-09 16:00 采纳率: 52.8%
浏览 30
已结题

使用百度富文本出现异常bug

使用百度富文本进行数据录入时,当点击html源码按钮后,然后修改内容直接保存出现数据丢失,切换内容后点击保存出现覆盖数据问题

img

  • 写回答

2条回答 默认 最新

  • 李堇 2022-02-09 16:33
    关注

    参考链接:https://www.mdaima.com/jingyan/29.html

    百度编辑器ueditor,如何在源码模式与富文本模式相互切换

    今天在做评论内容编辑的时候用到了百度编辑器ueditor,但是在测试的时候发现一个问题,因为页面我是用AJAX调用数据再给ueditor写入内容,可如果在对不同内容进行编辑时,先打开的界面调用了编辑器的源码模式,编辑器会记住这个状态,再打开另一评论内容进行编辑时默认也是源码模式,但我想这样也还凑合用吧,可是发现源码模式下加载的内容并没有动态更新,只有在源码模式与富文本模式相互切换一次后才能更新为正确的内容。

    所以,索性就一次解决这个问题吧,网上百度了一下,发现对百度编辑器ueditor的切换源码模式和编辑模式的说明文档不太详细,官方的API文档也查了一下,只有一个简单的说明:

    Source的两个命令execCommand(String cmd)和queryCommandState(String cmd)
    //切换源码模式和编辑模式
    execCommand(String cmd) //cmd 命令字符串
    //javascript代码示例:
    editor.execCommand('source');
    //表示切换源码编辑模式和富文本编辑模式,如果当前为“源代码模式”则切换到“富文本编辑模式”,反之“富文本编辑模式”切换为“源代码模式”。

    //*****************************************************************************************

    //查询当前编辑器的状态是源码模式还是可视化模式
    queryCommandState(String cmd) //cmd 命令字符串
    //javascript代码示例:
    editor.queryCommandState('source');
    //返回值为int,如果当前是源码编辑模式,返回1,否则返回0

    我们理解了两个命令的功能,就可以利用一下了:
    if (UE.getEditor('text_id').queryCommandState('source')==1){
    UE.getEditor('text_id').execCommand('source');
    UE.getEditor('text_id').focus();
    }

    因为百度编辑器ueditor只提供了在源码模式与富文本模式相互切换的命令,并没有给出两个指定参数,可以直接设置利用。但好在还给出一个判断当前是哪种模式状态的判定方式,利用queryCommandState命令,如果当前是源码编辑模式,返回值为1,否则返回0。

    所以我们先判断一下,如果当前是源码模式就切换为富文本模式,再让编辑器获取焦点,这样每次创建编辑器的时候都可以保持在富文本编辑模式下,结构上保持了统一,也获取了焦点保持了数据的同步。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 2月17日
  • 已采纳回答 2月9日
  • 创建了问题 2月9日

悬赏问题

  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集