为什么具有满足价值的textarea不会注册keydown事件

时间:2016-01-21 04:44:33

标签: javascript html

这让我感到困惑 如下面的代码所示,当您按下" ctrl + b"在div中,字体粗体变得更大胆,而它在textarea中不会发生 这个问题是基于Marcus Ekwall对Rendering HTML inside textarea的回答。但是我无法添加评论,所以我在这里问。



div, textarea {
    width: 100px;
    height: 100px;
    border: 1px solid;
    padding: 5px;
}
textarea {
    resize: none;
}
  

<div contentEditable="true"></div>
<textarea contentEditable="true" placeholder="textarea"></textarea>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:3)

textarea中的

不起作用,因为它不支持HTML标记 当它运行document.execCommand(&#34;粗体&#34;)在所选文本中添加<b>fdsfsdfds</b>

这里是一个使用jQuery(更新)

的例子

&#13;
&#13;
$("#editor").keypress("c",function(e){
  
	if(e.ctrlKey) {        
      
     document.execCommand('bold', false, null);


  }
    
})
&#13;
#editor {
    width: 200px;
    height: 200px;
    border: 1px solid;
    padding: 5px;
    resize: none;
    border: 1px solid black;
    word-wrap: break-word;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>

<div id="editor" contentEditable="true"></div>
&#13;
&#13;
&#13;

请参阅此帖关于keypress jquery: keypress, ctrl+c (or some combo like that)

有关document.execCommand http://codepen.io/netsi1964/pen/QbLLGW http://codepen.io/netsi1964/pen/QbLLGW

的更多示例

答案 1 :(得分:0)

行为只是浏览器特定的。不同浏览器有不同的行为。感谢adeneo的提及:在textarea中,除了纯文本之外不能添加任何内容