说实话这个功能我没作过,我想了一下,应该用以下方法可以实现。
你研究一下, 如果对你有所帮助,请采纳哦!
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();
}
当编辑区没有获得焦点或光标处range为空时,点击加粗按钮,在光标处添加一个strong标签,之后把光标移动到strong标签内,现在在移动光标的过程出现了问题。
var frag = rangecreateContextualFragment(“<strong></strong>”);
var lastNode = fraglastChild;
rangeinsertNode(frag);
rangesetStartAfter(lastNode);
这里添加的strong标签是空,如果strong里加入一个 就可以获得lastChild,但现在它的lastChild是null,这样在setStartAfter时就找不到参照的lastNode对象了。
这里该如何创建空strong标签,或如何获取strong下参照节点。收起
点击加粗按钮后,在编辑区添加一个strong标签,把光标移动到strong内,继续输入时直接到strong内
如果strong内部有节点,比如文本或标签,那么fraglastChild就会获得最后一个标签或文本节点,假设创建的是这样的标签
<strong>nbsp;</strong>
那执行insertNode后插入的html将是
光标<strong>nbsp;</strong>
继续输入的话,文字会出现在strong标签前而不是内部,也就不是加粗的,所以要调整光标位置,执行setStartAfter(lastNode)
也就是把光标设置到lastNode也就是;之后,html变成
<strong>nbsp;光标</strong>
以上就是关于js怎么恢复光标的位置全部的内容,包括:js怎么恢复光标的位置、js selection range 插入空节点后怎么调整光标位置、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)