Bag*_*ell 4 html javascript css jquery
我正在尝试遵循此答案,但不是像他在 jsfiddle 中那样使用按钮,而是尝试使用列表项:
http://jsfiddle.net/hqvDT/108/
看起来它应该可以工作,但是当我尝试选择一些文本然后按B(粗体)时,它实际上并没有将文本加粗。
怎么了?
HTML:
<div id="myarea" contenteditable="true"></div>
<ul>
<li onclick="MakeBold();">B</li>
<li><i>I</i></li>
</ul>
Run Code Online (Sandbox Code Playgroud)
CSS:
#myarea {
border:1px solid #000;
padding:5px;
height:150px;
width:400px;
overflow:scroll;
}
ul {
list-style: none;
}
ul li {
width: 35px;
height: 35px;
border: 1px solid #ccc;
text-align: center;
line-height: 32px;
font-size: 14px;
color: #999;
cursor: pointer;
display: inline-block;
margin-right: -5px;
font-weight: bold;
font-size: 18px;
}
ul li:hover {
color: black;
}
Run Code Online (Sandbox Code Playgroud)
JS:
function MakeBold() {
document.execCommand('bold', null, false);
}
Run Code Online (Sandbox Code Playgroud)
问题是当单击按钮以外的元素时,textarea 中的选择会消失。
解决此问题的方法是使用onmousedown而不是onclick,因为该mousedown事件是在文本选择丢失之前触发的。
<li onmousedown="MakeBold()">B</li>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
26457 次 |
| 最近记录: |