我有这样的粘贴事件:
$("body").bind("paste", function (e) {
var pastedData = e.originalEvent.clipboardData.getData('text');
console.log(pastedData);
});
哪个工作出色!但是我也希望该选项通过如下所示的click事件获取剪贴板数据:
$("#clipboard").on("click", function (e) {
$("body").trigger("paste");
});
但是当我尝试此操作时,出现此错误:
无法读取未定义的属性“ clipboardData”
是否可以通过click事件获取剪贴板数据?还是通过点击事件触发粘贴事件?
答案 0 :(得分:0)
此代码可能对您有用。请让我知道,这就是您想要的解决方案!
工作的小提琴:https://jsfiddle.net/as6c3pLz/1/
html
<input id="trigger">
<button id="click" >CLICK TO PASTE</button>
Jquery
$('#click').click(function(){
navigator.clipboard.readText().then(text => {
// use text as a variable, here text = 'clipboard text'
$('#trigger').val(text);
});
});
注意:但是,它可能不适用于每个事件
,例如。鼠标悬停时,鼠标悬停不起作用
,但当前可以使用单击,键控,键控
记住:(正如David Bray所说的)在某些情况下,使用粘贴可能会被视为违规,因为用户可以复制许多重要信息并且可能被盗。因此,如果出于愚蠢的原因需要此功能,请不要使用它。而且,对于其他版本的浏览器,可能不支持。
答案 1 :(得分:0)
当用户使用组合键(ctrl + v)时,他们会将剪贴板发送到浏览器,否则就是用户的私人数据...信用卡号,恋人地址等...
答案是否定的-这是一个安全性问题-在这里已得到很好的解释: