JavaScript事件监听器不为拖放触发
我有一个添加页面级dropzone的页面。为此,我添加了一些事件侦听器,如下所示JavaScript事件监听器不为拖放触发,javascript,Javascript,我有一个添加页面级dropzone的页面。为此,我添加了一些事件侦听器,如下所示 var dropZone = document.getElementById('dropZone'); window.addEventListener('dragenter', function (e) { console.log("test"); dropZone.style.visibility = "visible"; }); dropZone.addEventListener('dragen
var dropZone = document.getElementById('dropZone');
window.addEventListener('dragenter', function (e) {
console.log("test");
dropZone.style.visibility = "visible";
});
dropZone.addEventListener('dragenter', function (e) {
console.log("test2");
if (true) {
e.dataTransfer.dropEffect = 'copy';
e.preventDefault();
}
});
dropZone.addEventListener('dragover', function (e) {
if (true) {
e.dataTransfer.dropEffect = 'copy';
e.preventDefault();
}
});
dropZone.addEventListener('dragleave', function (e) {
dropZone.style.visibility = "hidden";
});
dropZone.addEventListener('drop', function (e) {
e.preventDefault();
dropZone.style.visibility = "hidden";
//Code to handle the selected files
HandleDroppedFiles(e);
});
此代码将事件侦听器添加到dropzone元素
但当我尝试拖放文件时,什么也没发生。相反,我得到了“不允许”图标(如下图),就像其他不允许拖放的页面一样
控制台日志中没有添加任何消息,即使在详细设置下也是如此。在事件侦听器被触发之前,感觉浏览器正在以某种方式阻止删除。但是,老实说,我不知道哪里出了问题,从哪里开始调试 结果是,我的代码没有问题。只是有点奇怪。我禁用了adblocker,重新启动了chrome。什么都没用。检查了谷歌硬盘,它也有同样的问题
所以,最后我重新启动了电脑,以确保Chrome正确重新启动。一切都突然恢复了正常。SMH 对我来说很好!可能是因为其他问题,比如跨源/协议问题,不允许将文件放在这里。这很可能是因为跨源的问题。让我在不同的浏览器中试用。在不同的机器上测试。它在另一台机器上工作。这是一个奇怪的新现象。