|
|
1
100
此解决方案适用于所有主要浏览器:
为了实现这一点
变量
如果您希望在通过单击聚焦div时更改选择,而不是恢复选择
|
|
|
2
59
这与基于标准的浏览器兼容,但在IE中可能会失败。我提供它作为起点。IE不支持DOM范围。
|
|
|
3
20
更新 Rangy 这包含了我在下面发布的代码的改进版本。你可以使用 selection save and restore module @Nico Burns's answer 如果您没有对项目中的选择执行任何其他操作,并且不需要大量的库。 先前的答复
我可能会把一些东西放在一起做这件事,如果我这样做了,我会在这里发帖。 编辑: 我已经创建了一个脚本的演示。到目前为止,除了Opera 9中的一个bug,它在我尝试过的所有东西中都有效,我还没有时间去研究它。它使用的浏览器有IE 5.5、6和7、Chrome 2、Firefox 2、3和3.5以及Safari 4,所有这些都在Windows上。 http://www.timdown.co.uk/code/selections/ 请注意,可以在浏览器中向后进行选择,以使焦点节点位于选择的开始位置,并且点击向右或向左光标键将插入符号移动到相对于选择开始位置的位置。我认为在恢复选择时不可能复制这个,因此焦点节点始终位于选择的末尾。 我将在不久的某个时候完整地写下来。 |
|
|
4
16
我有一个相关的情况,我特别需要将光标位置设置到contenteditable div的末尾。我不想使用像Rangy这样成熟的库,而且很多解决方案都太重了。 最后,我提出了一个简单的jQuery函数,将克拉位置设置为contenteditable div的末尾:
就这样! |
|
|
5
7
我接受了Nico Burns的答案,并使用jQuery进行了验证:
您需要jQuery 1.6或更高版本:
|
|
|
6
5
玩过之后,我修改了上面的Epilloss的答案,并将其作为一个jQuery插件,这样您就可以执行以下操作之一:
|
|
|
7
3
你可以利用 selectNodeContents 这是由现代浏览器支持的。
|
|
8
0
在Firefox中,div的文本可能位于子节点中(
|