html - HTML粘贴事件,将粘贴区域限制为div边框
问题描述
我在html-div-element使用粘贴事件让用户粘贴图像。
我希望用户在粘贴图像时站在 div 上。
所以我将粘贴事件绑定到div
选择器。
问题是每次用户按下ctrl+时都会触发该事件v,即使鼠标不在 div 上也是如此。
我试图检查event.currentTarget
- 可能我可以问它是否是div
,但它总是给我div
选择器,即使当我在其他元素上发生ctrl+时也是如此。v
这是我的代码:
HTML:
<div id="myPasteZone" style="border:1px solid black;height: 150px;width: 35vw"></div>
Javascript(类型脚本):
$('#myPasteZone').bind("paste", (e)=>{
const file = e.originalEvent.clipboardData.files[0];
if(file){
this.addNewAttachment(file);
}
});
有什么方法可以限制仅在 上的粘贴事件div
?
解决方案
试试这个。我添加tabIndex
到 div 以便它可以集中。然后,只有当它只聚焦时,您才能粘贴。
演示:(ctrl + v)
$(document).ready(function() {
$('#myPasteZone').bind("paste", (e) => {
try {
if ($(":focus")[0].id === "myPasteZone") { // check if div focused
const file = e.originalEvent.clipboardData.files[0];
if (file) {
this.addNewAttachment(file);
}
console.log('pasted');
}
} catch (e) {
return;
} // catch if id not exist
});
});
<script src="http://code.jquery.com/jquery-1.6.2.min.js"></script>
<body>
<div id="myPasteZone" tabindex="-1" style="border:1px solid black;height: 150px;width: 35vw"></div>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> <p>hello, world</p>
</body>
推荐阅读
- javascript - 在 d3 画布地图上绘制弧线的问题
- python - 如果两个值都不存在,则从行解析多个值会导致错误
- python - 如何仅重命名特定文件夹?
- json - Google Apps 脚本解析来自 Quandl API 的 JSON 响应 - 由于“未定义”,无法访问特定的数组索引作为响应
- javascript - 如何在 next.js 应用程序的窗口对象上访问 google api 脚本?
- python - JIRA访问使用REST API解压数据报错
- sql - SQL 查询:是否可以在单个查询中投影四个结果?
- algorithm - 随机穿越矩阵
- php - 是否有在网络服务器上流式传输我的 PiCamera 的功能
- c++ - 从左值到右值引用的隐式转换何时发生?