为什么document.execCommand()仅适用于
标记?
问题描述:
这是我的HTML代码:为什么document.execCommand()仅适用于<img>标记?
function formatDoc() {
document.execCommand('italic', false, null);
}
<div id="toolBar2">
<span onclick="formatDoc();">italic</span>
<img src="images/video.jpg" onclick="formatDoc();">
</div>
<div id="textBox" contenteditable="true"><p>Lorem ipsum</p></div>
的formatDoc()
不<span>
标签工作,但在<img>
标签效果很好。 为什么? 它也不能在<p>
标签等工作。到目前为止,我没有成功地试图通过自己来解决问题。
谁能告诉我为什么会发生这种情况? :(
谢谢大家。
答
这是来自Mozilla的发展网络
当HTML文档已经被切换到的designMode,文档对象公开,将execCommand方法,其允许一个运行的命令来处理的内容可编辑区域大多数命令会影响文档的选择(粗体,斜体等),而其他命令会插入新元素(添加链接)或影响整行(缩进)使用contentEditable时,调用execCommand()会影响当前活动可编辑元素
了解更多详情看看吧 https://developer.mozilla.org/en-US/docs/Web/API/Document/execCommand
“在img标签中效果很好”您是如何验证的?它是否歪曲了图像?我怀疑你在这里误解了整个概念。从[MDN](https://developer.mozilla.org/en-US/docs/Web/API/Document/execCommand#Commands):“斜体:为选择或在插入点切换开启/关闭斜体。( Internet Explorer使用EM标签而不是I.)“。 – Teemu