contentEditable javascript插入div中的插入符号

时间:2009-12-12 09:26:36

标签: javascript cursor contenteditable caret

我有contentEditable div。

假设用户单击了一个将HTML插入可编辑区域的按钮。

因此,他们点击了一个按钮,以下内容被添加到innerHTML div的contentEditable中:

<div id="outside"><div id="inside"></div></div>

如何自动将光标(即插入符号)放在“内部”div中? 更差。如何在IE和FF中工作?

3 个答案:

答案 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)。