1

最近我不得不在 Opera 中使用 execCommand()。问题是这样的,当我尝试使用此功能更改背景颜色(或文本颜色)时,一切都按预期工作,但是当我混合的颜色多于一种时,就会出现意外行为。我做了一个测试页来理解我的意思:

<html><head>
<script type="text/javascript">
function changecolor(color) {
 document.execCommand ('ForeColor', false, color);
 document.getElementById('source').innerHTML = document.getElementById('content').innerHTML;
}       
</script>
</head>

<body>
    <button onclick="changecolor('red');">Red</button>
    <button onclick="changecolor('blue');">Blue</button>
    <div contenteditable="true" id="content">aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</div>

    <textarea id="source" style="margin-top:100px;width:800px;height:200px;"></textarea>
</body>

(参见jsfiddle 的实际操作

所以,尝试将这两种颜色与最新版本的 Opera 混合,你会明白我的意思。

4

1 回答 1

0

What I'm seeing: When the selection spans more than one color and ends inside the same colour you try to apply, nothing happens. 当它以不同的颜色结束时,一些旧颜色会被移除,但不会应用新颜色。

这听起来类似于 Opera 现有的错误 CORE-24880 “execCommand('bold') 应该使选择变为粗体,即使部分选择是粗体的”。我将跟进此错误并尝试将其推向修复。

于 2012-07-23T22:32:12.963 回答