最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

contentEditable javascript caret placement in div - Stack Overflow

programmeradmin1浏览0评论

I have a contentEditable div.

Let's say the user clicks a button that inserts HTML into the editable area.

So, they click a button and the following is added to the innerHTML of the contentEditable div:

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

How do I automatically place the cursor (ie caret) IN the "inside" div? Worse, how can this work in IE and FF?

I have a contentEditable div.

Let's say the user clicks a button that inserts HTML into the editable area.

So, they click a button and the following is added to the innerHTML of the contentEditable div:

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

How do I automatically place the cursor (ie caret) IN the "inside" div? Worse, how can this work in IE and FF?

Share Improve this question edited Mar 16, 2022 at 16:43 General Grievance 5,03338 gold badges37 silver badges56 bronze badges asked Dec 12, 2009 at 9:26 Ben McBen Mc 2,0786 gold badges30 silver badges37 bronze badges 0
Add a ment  | 

3 Answers 3

Reset to default 7

For IE:

var range= document.body.createTextRange();
range.moveToElementText(document.getElementById('inside'));

range.select();

For Mozilla:

var range= document.createRange();
range.selectNodeContents(document.getElementById('inside'));

var selection= window.getSelection();
selection.removeAllRanges();
selection.addRange(range);

In theory the Mozilla version should also work in Webkit and Opera. In practice Webkit selects nothing and Opera selects the whole page. Sigh. This is still not well-supported territory.

As far as i could understand from your question:

If it is contentEditable editable/typeable, you may try this:

  // you insert content with your code and after that
  document.getElementById('contentEditable_id_here').focus();

FYI focus() doesn't work for non-form elements with contentEditable enabled in Google Chrome (I just tried it on a <li> inside a list that is editable and nothing happened in Chrome 10.0.648.82 beta on Win XP Pro SP3).

发布评论

评论列表(0)

  1. 暂无评论