我有一个功能区元素,其文本是可编辑的。它可以正常工作,直到您按ctrl + a或在内部单击三次以选择Firefox中的所有文本。 document.execCommand在Firefox中无法使用,控制台出现[Exception... "Failure" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: debugger eval code :: <TOP_LEVEL> :: line 1" data: no]
错误。
要重现该问题,请运行以下代码,在元素中选择整个文本(单击文本并按ctrl + a),然后在浏览器控制台中运行document.execCommand('italic');
。
<div style="position: absolute; top: 89px; left: 41px; z-index: 6;">
<font contenteditable="true" style="
float: left;
background: #a64ba5;
vertical-align: top;
color: #fff;
font-weight: bold;
font-size: 12px;
padding-left:10px;
padding-top:14px;
padding-bottom:14px;
">Some text</font>
<span class="right" style="
position: absolute;
content: '';
border: 20px solid #a64ba5;
border-left-width: 10px;
border-right-color: transparent;"></span>
</div>
有人对这个问题有任何想法/解决办法吗?
答案 0 :(得分:0)
我使用div标签而不是字体解决了该问题。这解决了Firefox中的问题,这似乎是Firefox错误。另一种选择是将contenteditable属性放置到父元素,但是当您使用ctrl + a和Backspace时,这会破坏元素。