收藏
回答

editor组件在编辑时光标位置问题?

使用editor时,在我使用EditorContext.setContents({html:'编辑内容'})后,进行真机调试,当我第一次(只是第一次)点击内容时准备在任意字符后插入或追加文字时,光标总是停留在第一个字符前。有没有什么解决办法?

回答关注问题邀请回答
收藏

9 个回答

  • 飞扬~~
    飞扬~~
    2021-08-09

    只要使用了setContents 光标就在编辑区第一个字最前面

    2021-08-09
    有用 2
    回复
  • 蔚蓝银河
    蔚蓝银河
    07-04

    我有一个曲线救国的办法:可以实现去掉光标,用户自己点击的时候再出现光标;

    富文本组件

     <editor id="editor" class="ql-editor" name="{{name}}" read-only="{{readOnly}}"
        placeholder="{{placeholder}}" bind:ready="_onEditorReady" bind:input="Content" show-img-toolbar show-img-resize="{{true}}"></editor>
    


    页面JS逻辑

        const editor = this.selectComponent('#editor')
        editor.setHtml(this.data.replyContent)
        editor.fixCursor() //避免富文本器在编辑的时候,光标总是到最前面
    


    editor.setHtml方法

        setHtml(html) { //回显
          if (html) {
            this.createSelectorQuery().select('#editor').context((res) => {
              this.editorCtx = res.context
              this.editorCtx.setContents({
                html,
                fail(err) => {
                  console.log(`内容回显失败:${err}`);
                }
              })
            }).exec()
          }
        },
    


    editor.fixCursor()方法

        fixCursor() {
          this.setData({
            readOnlytrue
          })
          setTimeout(() => {
            this.setData({
              readOnlyfalse
            })
          }, 500)
        }
    


    原理:通过setHtml以后,里面让editor组件变为只读;然后延迟500毫秒,再让editor组件变为可写,这样光标就消失了(不过用户需要主动点击富文本编辑器触发编辑)。




    07-04
    有用
    回复
  • 小军
    小军
    2023-07-13

    2023年了 还未解决

    2023-07-13
    有用
    回复
  • 杨华冬
    杨华冬
    2023-03-14

    getContents也会有一样的问题

    2023-03-14
    有用
    回复
  • 诚观
    诚观
    2022-07-31

    可以在onEditorready里setcontent,不要在bindtap里setcontent

    2022-07-31
    有用
    回复
  • 心爱
    心爱
    2021-05-18

    请问楼主解决了吗


    2021-05-18
    有用
    回复
  • 刘玉川
    刘玉川
    2020-09-28

    现在这个问题 有解决方案么?

    2020-09-28
    有用
    回复
  • 灵芝
    灵芝
    2020-03-09

    你好,请提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

    2020-03-09
    有用
    回复 10
    • 何京华
      何京华
      2020-03-10
      System:iPhone IOS12.1.1 weChat:7.0.11 
      "libVersion": "2.8.1", 
         
      onEditorReady() { 
              var that = this; 
              var query = wx.createSelectorQuery().in(this); 
              query.select('#editor').context(function(res){ 
                    that.editorCtx = res.context; 
                    that.editorCtx.setContents({ 
                        html: “一个editor,在微信小程序开发中使用富文本editor”, 
                        success:function(r){ } 
                    }); 
               }).exec(); 

      问题再描述一下:真机调试时,进入当前页面后,对editor已经赋值,此时,当我点editor内容中任意字符(第一次),editor的光标会在第一个字符前面(第一次以后,光标可以正确定位字符)。
      2020-03-10
      回复
    • 灵芝
      灵芝
      2020-03-10回复何京华
      没有复现呀,是自动聚焦么?给个这种格式的代码片段看下(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html
      2020-03-10
      回复
    • 何京华
      何京华
      2020-03-10
      https://developers.weixin.qq.com/s/wLhVTKmF7mf4
      2020-03-10
      回复
    • 何京华
      何京华
      2020-03-10
      看起来不像是自动聚焦产生的后果,请在ios上试,开发环境下运行正常。
      2020-03-10
      回复
    • 灵芝
      灵芝
      2020-03-10回复何京华
      真机上测的,没有复现,具体机型是什么
      2020-03-10
      回复
    查看更多(5)
  • 舔酥
    舔酥
    2020-03-09

    请问楼主解决了吗?

    2020-03-09
    有用
    回复 3
    • 何京华
      何京华
      2020-03-10
      没有解决,我认为是小程序底层库的中一个小bug
      2020-03-10
      回复
    • skyline
      skyline
      2020-06-02回复何京华
      请问问题解决了吗
      2020-06-02
      回复
    • 何京华
      何京华
      2020-06-02回复skyline
      还没有,先放着
      2020-06-02
      回复
登录 后发表内容
问题标签