最近、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 で 2 つの色を混ぜてみると、私の言いたいことがわかるでしょう。