Javascript 鼠标右键-激活输入文件中的粘贴选项
我用angular开发了一个文件输入。在此输入中,我可以使用CTRL-V检测图像粘贴。当我单击输入上的右键时,是否有方法激活粘贴选项 有人能帮我吗 代码Javascript 鼠标右键-激活输入文件中的粘贴选项,javascript,angular,typescript,Javascript,Angular,Typescript,我用angular开发了一个文件输入。在此输入中,我可以使用CTRL-V检测图像粘贴。当我单击输入上的右键时,是否有方法激活粘贴选项 有人能帮我吗 代码 @HostListener("paste", ["$event"]) onPaste(e: ClipboardEvent) { let clipboardData = e.clipboardData || (window as any).clipboardData; let pastedData = clipboardD
@HostListener("paste", ["$event"])
onPaste(e: ClipboardEvent) {
let clipboardData = e.clipboardData || (window as any).clipboardData;
let pastedData = clipboardData.getData("text");
if (pastedData.includes("data:image")) {
var binary = atob(pastedData.split(",")[1]);
var array = [];
for (var i = 0; i < binary.length; i++) {
array.push(binary.charCodeAt(i));
}
var pasteImages = new Blob([new Uint8Array(array)], {
type: "image/jpeg"
});
} else {
alert("Select an image in the correct format");
}
}
@HostListener(“粘贴”、[“$event”])
onPaste(e:ClipboardEvent){
让clipboardData=e.clipboardData | |(窗口如有);
让pastedData=clipboardData.getData(“文本”);
if(pastedData.includes(“数据:图像”)){
var binary=atob(pastedData.split(“,”[1]);
var数组=[];
对于(var i=0;i
您可以尝试将其添加到粘贴主机侦听器下:
@HostListener("mousedown", ["$event"])
onMouseDown(e) {
if (e.button === 2) {
e.target.contentEditable = true;
}
// wait just enough for 'contextmenu' to fire
setTimeout(() => (e.target.contentEditable = false), 20);
}
从输入中删除type=file
将允许上下文菜单显示:
<input type="file" id="files" multiple (change)="detectFiles($event)" accept="image/*">
您可以尝试将其添加到粘贴主机侦听器下:
@HostListener("mousedown", ["$event"])
onMouseDown(e) {
if (e.button === 2) {
e.target.contentEditable = true;
}
// wait just enough for 'contextmenu' to fire
setTimeout(() => (e.target.contentEditable = false), 20);
}
然后从input
中删除type=file
将允许上下文菜单显示:
<input type="file" id="files" multiple (change)="detectFiles($event)" accept="image/*">
事实上,如果删除type=“files”,将出现粘贴按钮,但输入将停止正常工作。有没有办法让它们同时启动和运行?非常感谢你的邀请reply@mvpSets糟糕,今天早上我给你做了一个带有自定义上下文菜单实现的stackblitz,但忘了保存它。。。如果你感兴趣的话,我今晚再做一次是的,我会很感激的!!!此时,我需要一个文件输入,允许我选择/拖动/粘贴图像。您不需要显示图像,只需运行事件,这将是一个巨大的帮助!非常感谢您的可用性和愿意帮助我!我一直在寻找我是否能解决这个问题,我想实现什么是可能的,或者我必须使用几个过程?嘿@mvpSets很抱歉,我一直在研究你的问题,似乎主要的问题不是上下文菜单,而是从Angular访问剪贴板数据。在某些浏览器上看起来非常复杂/不可能。无法在其中分配那么多时间,但我的研究并没有真正取得成果。事实上,如果删除type=“files”,将出现粘贴按钮,但输入将停止正常工作。有没有办法让它们同时启动和运行?非常感谢你的邀请reply@mvpSets糟糕,今天早上我给你做了一个带有自定义上下文菜单实现的stackblitz,但忘了保存它。。。如果你感兴趣的话,我今晚再做一次是的,我会很感激的!!!此时,我需要一个文件输入,允许我选择/拖动/粘贴图像。您不需要显示图像,只需运行事件,这将是一个巨大的帮助!非常感谢您的可用性和愿意帮助我!我一直在寻找我是否能解决这个问题,我想实现什么是可能的,或者我必须使用几个过程?嘿@mvpSets很抱歉,我一直在研究你的问题,似乎主要的问题不是上下文菜单,而是从Angular访问剪贴板数据。在某些浏览器上看起来非常复杂/不可能。我无法在这方面分配那么多时间,但我的研究并没有真正取得成果。