我有contentEditable
div。
假设用户单击了一个将HTML插入可编辑区域的按钮。
因此,他们点击了一个按钮,以下内容被添加到innerHTML
div的contentEditable
中:
<div id="outside"><div id="inside"></div></div>
如何自动将光标(即插入符号)放在“内部”div中? 更差。如何在IE和FF中工作?
答案 0 :(得分:7)
对于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会选择整个页面。叹。这仍然是不受支持的领域。
答案 1 :(得分:1)
据我所知,你的问题可以理解:
如果contentEditable是可编辑/可输入的,您可以尝试:
// you insert content with your code and after that
document.getElementById('contentEditable_id_here').focus();
答案 2 :(得分:0)
FYI focus()不适用于在Google Chrome中启用了contentEditable的非表单元素(我只是在可编辑的列表中的<li>
内尝试过,并且在Chrome 10.0.648.82测试版中没有任何操作Win XP Pro SP3)。