Chrome/Safari中的ContentEditable焦点

7

我有一个可编辑的div,在页面加载时需要聚焦(将光标放在第一行)。

document.getElementById("editor").focus() 在Firefox和IE中有效,但在Chrome/Safari中只是选择整个内容!

有没有办法让它正常工作?

谢谢提前,
Shesh


这似乎是浏览器的限制。即使使用Tab键,每当div [contenteditable]获得焦点时,它也会突出显示其中的文本。 - Chinmayee G
谢谢回复!是的,TAB键也是这种情况。 :) - Sheshbabu
2个回答

2
这个问题可能对于提问者已经不再相关,但我会为未来的读者回答它。基本原则是将选择设置为元素开头处的折叠范围。 我使用Rangy JS库解决了这个问题:http://code.google.com/p/rangy
var r = rangy.createRange();
r.setStart( document.getElementById('editor'), 0 );
r.collapse(true);
rangy.getSelection().setSingleRange(r);

这可能有点过头了,但它肯定能在跨浏览器中工作,并且Rangy还提供了一堆额外的实用工具,所以值得研究 :)

0

我通过将focus()方法链接到attr()方法来使DIV获得焦点

$el.attr('contenteditable', "true").focus()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接