在焦点/单击时选择contenteditable div中的所有文本

我有满足感的div如下所示。

12 some text...

我需要的是,当我点击div时,所有文本将自动被选中。 你能帮我解决一下吗?

试试这个:

 
12 some text...

这样做。 计时器适用于Chrome和Safari,因为在这些浏览器中,选择整个元素的本机浏览器行为似乎在焦点事件之后触发,从而覆盖选择代码的效果,除非推迟到焦点事件之后:

 var div = document.getElementById("editable"); div.onfocus = function() { window.setTimeout(function() { var sel, range; if (window.getSelection && document.createRange) { range = document.createRange(); range.selectNodeContents(div); sel = window.getSelection(); sel.removeAllRanges(); sel.addRange(range); } else if (document.body.createTextRange) { range = document.body.createTextRange(); range.moveToElementText(div); range.select(); } }, 1); }; 

divfocus事件的问题是它无法触发,因为它认为div不应该是可编辑的。 DOM中的可编辑内容在后台标有tabindex ,因此为了让div接收onfocus事件,您需要显式声明divtabindex属性。 HTML:

 
12 some text...

这应该与onfocus