首页 > 解决方案 > 电子 ondrop 和 ondrag- 事件未触发

问题描述

我试图让用户只需将文件拖放到主窗口中,而不必单击输入表单,我完全被难住了。

在电子 6.14.5 中似乎没有任何拖放事件正在触发。

这是我的代码,它在浏览器中运行良好,我在网上找到的大多数解决方案都需要 preventDefault(),但我不认为“默认”被阻止甚至首先发生,包括或排除没有不同。

let input = document.getElementById('inbox');

input.ondragenter = function (e) {
    e.preventDefault()
    console.log('dragenter')
};
input.ondragleave = function (e) {
    e.preventDefault()
    console.log('ondragleave')
};

input.ondragover = function (e) {
    e.preventDefault()
    console.log('ondragover')
}

input.ondrop = function (e) {
    e.preventDefault()
    console.log('ondrop')
};
<div id="inbox">
Source Data:
<input type="file" id="fileInput" name="inputter">
</div>

更新:我发现 ondrag* 事件实际上正在触发,但是只有当我从电子窗口中拖动一个元素时它们才会这样做。如果我尝试从操作系统拖入一个文件,它根本没有响应,实际上可能值得注意的是,一旦我尝试拖动某些东西,我的鼠标光标就会变成禁止符号 ()

是否有一些窗口设置会阻止这个?

标签: javascriptnode.jsdrag-and-dropelectron

解决方案


推荐阅读