在JavaScript中,可以以编程方式选择input或textarea元素中的文本.您可以使用ipt.focus(),然后选择其内容来聚焦输入ipt.select().您甚至可以选择特定范围ipt.setSelectionRange(from,to).
我的问题是:有没有办法在contenteditable元素中做到这一点?
我发现我可以做elem.focus(),把插入符号放在一个contenteditable元素中,但随后运行elem.select()不起作用(也没有setSelectionRange).我在网上找不到任何关于它的东西,但也许我正在寻找错误的东西......
顺便说一下,如果它有所不同,我只需要它在谷歌浏览器中工作,因为这是Chrome扩展.
有没有办法将a的宽度缩放<input type="text">到实际值的宽度?
input {
display: block;
margin: 20px;
width: auto;
}Run Code Online (Sandbox Code Playgroud)
<input type="text" value="I've had enough of these damn snakes, on this damn plane!" />
<input type="text" value="me too" />Run Code Online (Sandbox Code Playgroud)
在此之前被标记为重复之前,我希望您意识到没有人真正为这个特定问题提供了一个好的答案.在焦点/点击时选择contenteditable div中的所有文本,接受的答案和Tim Down的答案都没有帮助,因为它们仅在元素已经聚焦时才起作用.在我的情况下,我希望在单击按钮后选择contenteditable div中的所有文本,即使div未事先聚焦.
我怎么能这样做?
按钮和div都有相同的'onclick'代码,但execCommand似乎只对按钮有效.按下div时,有什么方法可以使它工作吗?
这是我的小提琴:http: //jsfiddle.net/foreyez/ZzL8y/
<button onclick="document.execCommand('bold',false,null);">Bold</button>
<div onclick="document.execCommand('bold',false,null);" style='border:1px solid black;width:50px;'>Bold</div>
<div id='input' contenteditable='true'>
select some of this text and then hit one of the buttons above
</div>
Run Code Online (Sandbox Code Playgroud)