我有一个contentEditable
div。
假设用户单击将 HTML 插入可编辑区域的按钮。
因此,他们单击一个按钮,然后将以下内容添加到innerHTML
div 中contentEditable
:
<div id="outside"><div id="inside"></div></div>
如何自动将光标(即插入符号)放在“内部”div 中?更差。这如何在 IE 和 FF 中工作?
我有一个contentEditable
div。
假设用户单击将 HTML 插入可编辑区域的按钮。
因此,他们单击一个按钮,然后将以下内容添加到innerHTML
div 中contentEditable
:
<div id="outside"><div id="inside"></div></div>
如何自动将光标(即插入符号)放在“内部”div 中?更差。这如何在 IE 和 FF 中工作?
对于 IE:
var range= document.body.createTextRange();
range.moveToElementText(document.getElementById('inside'));
range.select();
对于 Mozilla:
var range= document.createRange();
range.selectNodeContents(document.getElementById('inside'));
var selection= window.getSelection();
selection.removeAllRanges();
selection.addRange(range);
理论上,Mozilla 版本也应该在 Webkit 和 Opera 中工作。实际上,Webkit 什么都不选择,而 Opera 选择整个页面。叹。这仍然不是得到很好支持的领域。
据我从你的问题中了解到:
如果它是 contentEditable 可编辑/可输入的,你可以试试这个:
// you insert content with your code and after that
document.getElementById('contentEditable_id_here').focus();
仅供参考,focus() 不适用于在 Google Chrome 中启用 contentEditable 的非表单元素(我只是在<li>
可编辑的列表中尝试了它,但在 Win XP Pro SP3 上的 Chrome 10.0.648.82 beta 中没有发生任何事情)。