2013-07-29 40 views
0

我有這樣一個網站:上關CONTENTEDITABLE動態時選擇

<!DOCTYPE html> 
<html> 
<body> 

<script src="jquery-2.0.3.min.js"></script> 

<div id="block"> 
<span id="c1" class="chunk">first </span> 
<span id="c2" class="chunk">second </span> 
<span id="c3" class="chunk">third </span> 
</div> 

<script> 

    var my = { 
     mousedown: function(event) { 
      $('.chunk').each(function() { 
       this.setAttribute('contenteditable', 'false'); 
      }); 
     }, 
     mouseup: function(event) { 
      $('.chunk').each(function() { 
       this.setAttribute('contenteditable', 'true'); 
      }); 
     } 
    }; 

    $('.chunk') 
    .on('mousedown', my.mousedown) 
    .on('mouseup', my.mouseup) 
    ; 

    my.mouseup(null); 

</script> 

</body> 

</html> 

期望得到的結果是一樣的鍍鉻:

當我點擊塊,我可以寫的文字,我看到一個插入符號(光標) ,當我選擇CONTENTEDITABLE獲取選擇

但Firefox在時禁用:我不能再鍵入INSI

因爲onmousedown禁用onclick(我認爲)的時間contenteditable(我認爲)

能否幫助修復?我正在尋找跨瀏覽器的解決方案。 請

回答

0

答案似乎更簡單,因爲我認爲。主要包含的父級必須具有contenteditable = true,之後,每個瀏覽器中的所有內容都可以像它應該那樣工作。而現在的鼠標移動和鼠標按下模擬選擇開始工作,也應該像他們(這個項目的另一個功能),所以記得有類似的問題時:只需創建一個CONTENTEDITABLE主容器,你會不會有問題的選擇

<!DOCTYPE html> 
<html> 
<body> 

<script src="jquery-2.0.3.min.js"></script> 

<div id="block" contenteditable="true"> 
<span id="c1" class="chunk">first </span> 
<span id="c2" class="chunk">second </span> 
<span id="c3" class="chunk">third </span> 
</div> 

</body> 

</html>