Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript中的粘贴事件_Javascript_Javascript Events - Fatal编程技术网

Javascript中的粘贴事件

Javascript中的粘贴事件,javascript,javascript-events,Javascript,Javascript Events,如何在javascript中处理通过右键单击选择的粘贴? 我尝试使用“onpaste”事件和所有其他可用的html事件,但没有任何效果。默认情况下,该事件不会显示为“onpaste”IIRC。您可以在jQuery中通过发出 jQuery(document).bind('paste', function(e){ alert('paste event caught') }); onpaste事件应该适用于所有现代浏览器(UPD包括Opera>=12.101) 在jQuery中绑定它,如下所示: $

如何在javascript中处理通过右键单击选择的粘贴?
我尝试使用“onpaste”事件和所有其他可用的html事件,但没有任何效果。

默认情况下,该事件不会显示为“onpaste”IIRC。您可以在jQuery中通过发出

jQuery(document).bind('paste', function(e){ alert('paste event caught') });

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

在jQuery中绑定它,如下所示:

$('#txt').on('paste', function() {console.log('text pasted!')})​
下面是一个活生生的例子:

在纯JavaScript中,对于现代浏览器来说,它看起来像这样

elem.addEventListener ("paste", handler, false);  // all browsers and IE9+
对于旧IE版本:

elem.attachEvent ("onpaste", handler);  // IE<9
elem.attachEvent(“onpaste”,handler);//IE我很惊讶这个问题#4532473没有得到回答,如果你想捕获afterpaste事件会发生什么。由于这可能是问题的一半,firefox(已测试)中的一种可能方法是在onpaste处理程序中注册oninput事件,并在执行完oninput处理程序后立即删除它

在ie中,应使用onpropertychange而不是oninput。(未测试)

Nice纯JS解决方案(根据要求…)可用


onpaste事件示例
玩这个编辑器!
尝试将文本粘贴到此区域!
函数日志(txt){
document.getElementById(“log”).appendChild(document.createTextNode(txt+“\n”));
}
函数截距(evt){
日志(“粘贴!”);
}
document.getElementById(“编辑器”).addEventListener(“粘贴”,粘贴拦截,false);
日志

您是否尝试过建议的解决方案?对于感兴趣的人,可以捕获粘贴事件的简单实现,但不能以这种方式读取内容,如“document.addEventListener”可以。
<!DOCTYPE html>
<html>
<head>
<title>onpaste event example</title>
</head>

<body>
<h1>Play with this editor!</h1>
<textarea id="editor" rows="3" cols="80">
Try pasting text into this area!
</textarea>

<script>
function log(txt) {
  document.getElementById("log").appendChild(document.createTextNode(txt + "\n"));
}

function pasteIntercept(evt) {
  log("Pasting!");
}

document.getElementById("editor").addEventListener("paste", pasteIntercept, false);
</script>

<h2>Log</h2>
<textarea rows="15" cols="80" id="log" readonly="true"></textarea>
</body>
</html>