Javascript 我怎样才能检测到一个;“复制图像”;浏览器事件?

Javascript 我怎样才能检测到一个;“复制图像”;浏览器事件?,javascript,jquery,Javascript,Jquery,使用jquery,我可以检测用户何时使用ctrl-c或通过上下文菜单复制内容(如文本): $(document).on('copy',function(e){$('body').prepend('copy event <br>');}); $(document).on('copy',函数(e){$('body').prepend('copy event');}); 但是,复制图像时似乎不会触发该事件。如何检测图像拷贝?具体地说,我想检测从元素复制的情况,但是任何都应该作为理解此问

使用jquery,我可以检测用户何时使用ctrl-c或通过上下文菜单复制内容(如文本):

$(document).on('copy',function(e){$('body').prepend('copy event <br>');});
$(document).on('copy',函数(e){$('body').prepend('copy event
');});
但是,复制图像时似乎不会触发该事件。如何检测图像拷贝?具体地说,我想检测从
元素复制的情况,但是任何
都应该作为理解此问题的起点


测试场景:

浏览器没有复制图像事件,所以你需要用一些技巧来模拟它。此外,剪贴板不会在其中保存图像。剪贴板只保存文本本身。你需要将图像转换为base64编码的字符串,然后将其保存到剪贴板并粘贴到你的应用程序上。但这有一个问题,那就是剪贴板数据,复制的图像或其中包含其他应用程序的某些数据。为此,您可以在开始和/或结束时将唯一字符串添加到编码字符串中,并在需要粘贴的任何位置进行检查。要将图像转换为base64encode字符串,您可以使用以下代码:

function getImageData(img) {
    var canvas = document.createElement("canvas");
    canvas.width = img.width;
    canvas.height = img.height;
    var ctx = canvas.getContext("2d");
    ctx.drawImage(img, 0, 0);
    var imgd = canvas.toDataURL("image/png");
    return imgd;
}

过关‍‍‍‍
img
标记此函数以获取结果。

这可能会帮助您:捕获此事件的目标是什么?@AlmaDo我需要用户将图像复制到剪贴板,然后返回到浏览器-这将允许使用来自跨站点图像源图像的像素数据(无安全风险,因为这是一个明确的用户操作)。因此,当他们启动复制事件时,我将启用粘贴功能,以直观地了解其工作原理。但是-如果他们将使用浏览器主菜单(编辑/复制)进行复制怎么办?@AlmaDo理想情况下,无论用户如何启动复制,都会检测到该事件。。。