2016-09-06 75 views
3

我试图通过jQuery触发textarea中的粘贴事件,但是这个主题对我来说很新。如何手动触发具有特定文本的文本区域中的粘贴事件

我见过一个人如何可以手动触发keydown事件模拟按这样的特定键:

var e = $.Event("keydown") 
e.which = 50 
$('#textarea1').trigger(e) 

但我怎么可以手动触发与文本提供的字符串,有效地模拟paste事件Ctrl + V或右键单击>粘贴像“Foobar”字符串?

我试图简单地设置textarea的值,但这不会触发粘贴事件。

编辑:

我也试过这个(模拟按Ctrl + V),但没有运气(ref):

e = $.Event("keydown");   
e.which = 86; // 'V' key 
e.ctrlKey = true; 
$("input").trigger(e); 
+0

你不能只是设定值? – Rayon

+1

我尝试过,但不会触发粘贴事件。 – Submits

+0

@Gothdo你确定吗? https://developer.mozilla.org/en-US/docs/Web/Events – Submits

回答

-5

这里是一个解决方案,您可以尝试:

$('body').on('paste',function(e) { 
    e.preventDefault(); 
    var text = (e.originalEvent || e).clipboardData.getData('text/plain'); 
    alert(text); 
}); 
+0

这将要侦听一个粘贴事件,不是吗?我需要触发一个粘贴事件。 – Submits

+0

http://stackoverflow.com/questions/2903991/how-to-detect-ctrlv-ctrlc -using-javascript – Vladimir

+1

不幸的是,这个链接并不能回答我的问题,我不需要检测Ctrl + V,我需要通过JavaScript触发一个Ctrl + V。 – Submits