繁体   English   中英

在Chrome / webkit中的contenteditable div图层中设置插入位置

[英]Set caret position in contenteditable div layer in Chrome/webkit

我正在尝试在一个可信的div层中设置插入位置,经过一些搜索网络并进行实验后,我使用它在firefox中使用它:

function set(element,position){
    element.focus();
    var range= window.getSelection().getRangeAt(0);
    range.setStart(element.firstChild,position);
    range.setEnd(element.firstChild,position);
}

[...]

set(document.getElementById("test"),3);

但在Chrome / webkit中,它会选择div中的所有内容。 这是webkit的错误还是我做错了什么?
先感谢您。

如果节点是文本节点,则节点内的范围边界的偏移量仅是字符偏移量。 如果节点是元素,则偏移量是边界之前的子节点数。

例如,如果您有HTML

<div id="myDiv">One <b>two</b> three</div>

...并按如下方式创建范围:

var range = document.createRange();
var myDiv = document.getElementById("myDiv");
range.setStart(myDiv, 1);
range.setEnd(myDiv, 1);

...你会得到一个Range,它在div的第一个子节点之后立即开始和结束,这是一个文本节点:

<div id="myDiv">One |<b>two</b> three</div>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM