我一直在使用按键事件检测它。如果我没记错的话,您可以从输入参数中获取按下的键和修饰符,以检测 Ctrl+v。
编辑
显然不是,我刚刚检查过。JQuery 使用“粘贴”事件进行标识。
HTML
<p id="cont" contenteditable="true">This is an editable paragraph.</p>
Javascript
$("#cont").keypress(function() {
console.log("Keypress " + Math.random());
});
$("#cont").bind('paste', function(e){
console.log("Paste " + Math.random());
});
这是小提琴:http: //jsfiddle.net/3djRp/3/
EDIT2
我借用了别人的事件组合在内容更改后检测粘贴,但在某些浏览器中它会触发两次。
$cont = $("#cont");
$cont.data('oldval', $cont.text());
//console.log($cont.data('oldval'));
$cont.bind("propertychange input keyup paste", function(event){
if($cont.data('oldval') != $cont.text()) {
//console.log("old " + $cont.data('oldval'));
//console.log("new " + $cont.text());
$cont.data('oldVal', $cont.text());
console.log('change: ' + $cont.text());
}
});