CKEditor にはpaste
、エディター インスタンスのイベントがあります。paste
すべてのブラウザーが同じ方法で起動するわけではないため、ネイティブよりもはるかに信頼性が高くなります (Opera はまったくそうではありません)。また、CKEditor の貼り付けイベントの優れた点は、ドキュメントの選択範囲に挿入される前に貼り付けられたデータを変更できることです。
このイベントのドキュメントは次のとおりです: http://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-paste
注: CKEditor の新しいバージョンが 1 週間前にリリースされ、このイベントが変更されたため、CKEditor 4 を使用していることを確認してください。
使用例 (egCKEDITOR.instances
オブジェクトからエディター インスタンスを取得できます。使用しているCKEDITOR.replace()/append()
場合は、これらのメソッドによってエディター インスタンスが返されます):
editor.on( 'paste', function( evt ) {
var data = evt.data;
data.dataValue = data.dataValue.replace(
/(http:\/\/[^\s]+)/gi, '<a href="$1">$1</a>' );
// Text could be pasted, but you transformed it into HTML so update that.
data.type = 'html';
});