通过点击事件触发粘贴事件

时间:2019-06-05 19:37:21

标签: jquery

我有这样的粘贴事件:

$("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事件获取剪贴板数据?还是通过点击事件触发粘贴事件?

2 个答案:

答案 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)时,他们会将剪贴板发送到浏览器,否则就是用户的私人数据...信用卡号,恋人地址等...

答案是否定的-这是一个安全性问题-在这里已得到很好的解释: