2

我們正在使用CKEditor的,我們正在處理粘貼事件就像這樣:的CKEditor:捕捉上粘貼事件(包括Shift + Insert鍵)

var editor = CKEDITOR.instances.OurInputControlName; 
editor.on('paste', function(ev) { 
    alert('we are in the on paste event!'); 
} 

但是,我剛纔發現,用戶可以通過按粘貼Shift + 插入並且我們的粘貼事件處理程序沒有被執行。

如何添加一個捕獲事件處理程序Shift + Insert and pasteing。

我們在CKEditor 4.1.1上。

編輯: 這可能是IE唯一的問題,至少IE9。我還沒有嘗試其他版本的IE瀏覽器。它在FF和Chrome中運行良好。

回答

2

我通過檢測Shift + 插入在IE中按下並手動觸發粘貼事件來解決此問題。

var editor = CKEDITOR.instances.OurInputControlName; 
editor.on('key', function(ev) { 
    if (ev.data.keyCode == 2228269 && $.browser.msie) { 
     setTimeout(function() { 
      var event = { 
       'type': 'html', 
       'dataValue': editor.getData() 
      }; 
      editor.editable().setHtml(''); 
      editor.fire('paste', event); 
     }, 100); 
    } 
}); 
editor.on('paste', function(ev) { 
    alert('we are in the on paste event!'); 
} 
我使用 setHtml()與調用 editor.setData('')保持在控制檯登錄JavaScript錯誤(即使它似乎清除textarea的,並沒有停止工作頁)