在 window 中拖放项目时防止 Electron 应用程序重定向
Prevent Electron app from redirecting when drag+dropping items in window
我不想在我的应用程序中使用 drag+drop
功能,因为不需要它。所以我想完全删除 window 的 drag+drop
功能。到目前为止,当拖动图像时,Electron window 打开图像路径。拖动 links 时,Electron window 重定向到 link.
我试过调用这个:
document.addEventListener('dragstart',function(event){
event.preventDefault();
return false;
},true);
document.addEventListener('drop',function(event){
event.preventDefault();
return false;
},true);
在 drop event
上的 event.preventDefault()
应该有效,但没有
也试过this:
BrowserWindow.on('will-navigate',function(event){
event.preventDefault();
return false;
});
BrowserWindow.webContents.on('will-navigate',function(event){
event.preventDefault();
return false;
});
同样失败。有什么解决办法吗?
var listener = function (event) {
console.log('foo');
};
document.removeEventListener('drop',listener,false);
找到 Windows Electron v2.3.1 Windows Electron v0.30.0
的修复程序代码应该有 dragover
和 [=13= 的监听器].
document.addEventListener('dragover',function(event){
event.preventDefault();
return false;
},false);
document.addEventListener('drop',function(event){
event.preventDefault();
return false;
},false);
如果您只听 dragover
或 drop
.
,Electron 仍会重定向到拖放的文件
干杯!
使用 ES6 语法的简洁版本(在 Electron 1.4.1 下为我工作)
document.addEventListener('dragover', event => event.preventDefault())
document.addEventListener('drop', event => event.preventDefault())
您可以在渲染过程中使用简单的 css。
*, *::after, *::before {
-webkit-user-select: none;
-webkit-user-drag: none;
-webkit-app-region: no-drag;
cursor: default;
}
我不想在我的应用程序中使用 drag+drop
功能,因为不需要它。所以我想完全删除 window 的 drag+drop
功能。到目前为止,当拖动图像时,Electron window 打开图像路径。拖动 links 时,Electron window 重定向到 link.
我试过调用这个:
document.addEventListener('dragstart',function(event){
event.preventDefault();
return false;
},true);
document.addEventListener('drop',function(event){
event.preventDefault();
return false;
},true);
在 drop event
上的 event.preventDefault()
应该有效,但没有
也试过this:
BrowserWindow.on('will-navigate',function(event){
event.preventDefault();
return false;
});
BrowserWindow.webContents.on('will-navigate',function(event){
event.preventDefault();
return false;
});
同样失败。有什么解决办法吗?
var listener = function (event) {
console.log('foo');
};
document.removeEventListener('drop',listener,false);
找到 Windows Electron v2.3.1 Windows Electron v0.30.0
的修复程序代码应该有 dragover
和 [=13= 的监听器].
document.addEventListener('dragover',function(event){
event.preventDefault();
return false;
},false);
document.addEventListener('drop',function(event){
event.preventDefault();
return false;
},false);
如果您只听 dragover
或 drop
.
干杯!
使用 ES6 语法的简洁版本(在 Electron 1.4.1 下为我工作)
document.addEventListener('dragover', event => event.preventDefault())
document.addEventListener('drop', event => event.preventDefault())
您可以在渲染过程中使用简单的 css。
*, *::after, *::before {
-webkit-user-select: none;
-webkit-user-drag: none;
-webkit-app-region: no-drag;
cursor: default;
}