js selection range 插入空节点后调整光标位置 - 富文本编辑器

js selection range 插入空节点后调整光标位置 - 富文本编辑器,第1张

小声的问一句:楼主的问题解决了吗?

我也在搞编辑器,忙了一个大晚上,w3c的range移动到空标签很容易的,setStartAfter方法传入的节点里并不需要一定有子节点的,只要offset设成0即可,rangesetStartAfter(strongNode,0),表示开始移动到strongNode的第一个子节点(并不一定有)之前,再collapse(true);合并到开头。

备注一下我对offset注释,如果也有人搜索到这里可以参考一下:

偏移量计算,节点和文字一样<span>AB</span><span>AB</span>中的位置

0<span>[0]A[1]B[2]</span>1<span>[0]A[1]B[2]</span>2

由于发现IE8的TextRange光标移动到空标签处理不像w3c那么简单,我就搜索到这里了,怎样才能让TextRange移动到空标签里头啊,不知道楼主实现了没有,能分享一下吗?

<div id=test contenteditable=true></div>

<script>

windowonload=function(){

   documentgetElementById("test")onkeydown=function(e){

      //当前元素是(e||event)currentTarget

      consolelog((e||event)currentTarget);

      //标签名称是(e||event)currentTargettagName

      consolelog((e||event)currentTargettagName);

   }

}

</script>

输入位置错是因为计算选择内容或鼠标距离左边位数不统一。

还有不轻易丢失鼠标焦点即可保证不换输入位置。

js获取光标位置很简单啊,百度一下就可以。一般discuz编辑器有,我写有,但不想找了~

说实话这个功能我没作过,我想了一下,应该用以下方法可以实现。

你研究一下, 如果对你有所帮助,请采纳哦!

var textbox = documentgetElementById('id');

if(textboxsetSelectionRange){

textboxsetSelectionRange(startIndex,stopIndex);

}else if(textboxcreateTextRange){

var range=textboxcreateTextRange();

rangecollapse(true);

rangemoveStart('character',startIndex);

rangemoveEnd('character',stopIndex-startIndex);

rangeselect();

}

js

documentgetElementById(id)focus();

例如

<input id="shan" type="text" onchange ="return gaib(thisid)"/>

function gaib(id) {

var oo=documentgetElementById(id);

if (oovalue == 3) {

alert('输入错误');

oofocus();

}

}

jquery

$("#"+id)focus();

例如

<input id="shan" type="text" onchange ="return gaib(thisid)"/>

function gaib(id) {

var oo=$("#"+id);

if (ooval() == 3) {

alert('输入错误');

oofocus();

}

}

<html>

<head>

<meta >

以上就是关于js selection range 插入空节点后调整光标位置 - 富文本编辑器全部的内容,包括:js selection range 插入空节点后调整光标位置 - 富文本编辑器、js 触发onkeydown事件时候,获取光标所在元素或者获取光标所在标签名称、js插入内容到光标(ie下)不准确等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9636590.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存