Javascript中的粘贴事件
如何在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中绑定它,如下所示: $
我尝试使用“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>