在Javascript中粘贴事件

Kar*_*Yan 25 javascript javascript-events

如何通过右键单击javascript来处理选择的粘贴?我试过"onpaste"事件和所有其他html事件可用但没有任何作用.

Dmi*_*ich 31

onpaste事件应该适用于所有现代浏览器(UPD包括Opera> = 12.10 1).

像这样在jQuery中绑定它:

$('#txt').on('paste', function() {console.log('text pasted!')})?
Run Code Online (Sandbox Code Playgroud)

这是一个实例:http: //jsfiddle.net/7N6Xq/

在纯JavaScript中,现代浏览器看起来就像这样

elem.addEventListener ("paste", handler, false);  // all browsers and IE9+
Run Code Online (Sandbox Code Playgroud)

对于旧的IE版本:

elem.attachEvent ("onpaste", handler);  // IE<9
Run Code Online (Sandbox Code Playgroud)

您还可以将其与oninput和其他事件(更改,属性更改,拖放等)结合使用,以创建相对无懈可击的内容更改跟踪.


脚注:

1 Opera支持剪贴板API,从Presto/2.10.286开始,对应于此处建议的12.10 .Blink版本的Opera(从15开始)也应该支持它但我无法测试它,因为仍然没有Linux版本.


Jef*_*ins 2

默认情况下,该事件不会公开为“onpaste”IIRC。您可以通过发出以下命令在 jQuery 中非常简单地完成此操作

jQuery(document).bind('paste', function(e){ alert('paste event caught') });
Run Code Online (Sandbox Code Playgroud)