2012-07-17 34 views
1

最近我不得不在Opera中使用execCommand()。問題是,當我嘗試用這個函數改變背景顏色(或文本顏色)時,一切都按預期工作,但是當我混合更多的顏色時,會出現意想不到的行爲。我做了一個測試頁面,明白我的意思:execcomand opera中的錯誤

<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> 

(見in action on jsfiddle

所以,儘量使用Opera的最新版本混淆了兩種顏色,你就會明白我的意思。

+0

請您詳細說明在哪裏混合哪些顏色?有些似乎有效,有些則不行。 – Bergi 2012-07-17 19:32:46

回答

0

我所看到的:當選擇跨越多種顏色,並在您嘗試應用的相同顏色內結束時,什麼都不會發生。當它以不同的顏色結束時,舊的顏色將被刪除,但新的顏色不會被應用。

這聽起來與Opera的現有bug CORE-24880類似,即使選擇的一部分是粗體,execCommand('bold')也應該使選擇變爲粗體。我會跟進這個錯誤,並嘗試將它更接近修復。

+0

你有什麼鏈接去尋找這個bug嗎? – user1531755 2012-07-23 22:55:21

+0

抱歉,Opera的錯誤跟蹤器已關閉,因此您無法觀看它。好消息是我爲Opera工作,所以我可以。對於閉源開發過程抱歉。 – hallvors 2012-07-24 02:00:36

+0

有沒有其他來源可以找? – user1531755 2012-07-26 06:13:51