小程序
小游戏
企业微信
微信支付
扫描小程序码分享
使用editor时,在我使用EditorContext.setContents({html:'编辑内容'})后,进行真机调试,当我第一次(只是第一次)点击内容时准备在任意字符后插入或追加文字时,光标总是停留在第一个字符前。有没有什么解决办法?
9 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
只要使用了setContents 光标就在编辑区第一个字最前面
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
我有一个曲线救国的办法:可以实现去掉光标,用户自己点击的时候再出现光标;
富文本组件
<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({ readOnly: true }) setTimeout(() => { this.setData({ readOnly: false }) }, 500) }
原理:通过setHtml以后,里面让editor组件变为只读;然后延迟500毫秒,再让editor组件变为可写,这样光标就消失了(不过用户需要主动点击富文本编辑器触发编辑)。
2023年了 还未解决
getContents也会有一样的问题
可以在onEditorready里setcontent,不要在bindtap里setcontent
请问楼主解决了吗
现在这个问题 有解决方案么?
你好,请提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)
请问楼主解决了吗?
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
只要使用了setContents 光标就在编辑区第一个字最前面
我有一个曲线救国的办法:可以实现去掉光标,用户自己点击的时候再出现光标;
富文本组件
<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({ readOnly: true }) setTimeout(() => { this.setData({ readOnly: false }) }, 500) }
原理:通过setHtml以后,里面让editor组件变为只读;然后延迟500毫秒,再让editor组件变为可写,这样光标就消失了(不过用户需要主动点击富文本编辑器触发编辑)。
2023年了 还未解决
getContents也会有一样的问题
可以在onEditorready里setcontent,不要在bindtap里setcontent
请问楼主解决了吗
现在这个问题 有解决方案么?
你好,请提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)
"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的光标会在第一个字符前面(第一次以后,光标可以正确定位字符)。
请问楼主解决了吗?