1 html select bold contenteditable
我正在尝试使用contentEditable div编写一个所见即所得的编辑器,并且在处理粗体(和斜体)时遇到了麻烦.
当选择div中的所有文本时,execCommand('bold')在div中工作,但是当我尝试获取该内容的HTML时,HTML不会显示任何格式.
要了解我的意思,请尝试在Firefox 5中运行以下HTML代码:
<script type="text/javascript">
window.onload = function () {
var output = document.getElementById('output');
var input = document.getElementById('input');
}
</script>
<body>
<button onClick="execCommand('bold', false, null);output.value=input.innerHTML;">Bold</button>
<div style="width: 300px; border: 1px solid #000000;">
<div id="input" contenteditable="true">Some editable text</div>
</div>
<textarea id="output"></textarea>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
请尝试以下方法:
<span style="font-weight:bold;">加粗单词,这有点不幸(<b>在Safari,Chrome中),但仍然可以胜任.任何关于可能导致这些问题以及如何解决这些问题的想法都将不胜感激!
这是您原始代码的jsFiddle:http://jsfiddle.net/Bv2Ek/
问题是Firefox正在添加可编辑元素font-weight: bold的style属性<div>以使其全部变为粗体,这是非常合理的事情.如果您希望使用<b>或使用<strong>元素来应用粗体,则可以先使用该StyleWithCSS命令.将以下内容添加到脚本中:
function bold() {
document.execCommand('StyleWithCSS', false, false);
document.execCommand('bold', false, null);
}
Run Code Online (Sandbox Code Playgroud)
你的按钮变成:
<button onClick="bold(); output.value=input.innerHTML;">Bold</button>
Run Code Online (Sandbox Code Playgroud)
修改代码的jsFiddle示例:http://jsfiddle.net/Bv2Ek/1/
| 归档时间: |
|
| 查看次数: |
2679 次 |
| 最近记录: |