2010-08-25 68 views
1

我一直在拉我的頭髮,試圖找出解決此問題的最佳方法。也許有人會喜歡這個。CTRL-A在Firefox中的contentEditable div中選擇div本身

我有一個div contentEditable =「true」,幾乎可以正常工作。 Firefox內部的一個例外是用戶使用CTRL-A選擇所有內容然後複製/粘貼。選擇操作包括div本身的標籤!就我能夠搜索的情況而言,這個漏洞應該由Mozilla修復,但事實並非如此。該div只是不斷粘貼在自己的內部。

我已經研究過一旦用戶複製了剪貼板,但Firefox似乎並不太友好,除非您使用閃存,這不是很理想。我還想過在另一端捕捉有問題的標籤,當用戶進行粘貼時,但粘貼事件會在JavaScript事件處理程序完成後將實際文本放入div中。有沒有辦法在發生粘貼之前編輯文本?

+0

不知道這是否可以工作,但不能在div上嘗試onchange =「checkfordivs()」,其中checkfordiv是在div內容被更改後啓動的JS函數? – 2010-08-25 19:26:19

回答

2

其實這是一個FireFox瀏覽器issue.You可以使用下面的函數來解決這個問題。

function disableCtrlKeyCombination(event){ 
    var keyCode = event.keyCode; 
    if (event.ctrlKey && keyCode==86) { //CTRL+V 
     event.preventDefault(); 
     document.getElementById("divId").textContent = system.getClipboard().getData("text"); 
     return false; 
    } else if (event.ctrlKey && keyCode==67) { //CTRL+C (Copy) 
     event.preventDefault(); 
     system.getClipboard().setData("text",document.getElementById("divId").textContent); 
     return false; 
    } else { 
     return true; 
    } 
} 

注意:這隻適用於Firefox。在其他瀏覽器中,默認情況下它工作正常。

相關問題