我不想在我的应用中使用drag+drop
功能,因为不需要它。所以我想完全删除窗口的drag+drop
功能。到目前为止拖动图像时,Electron窗口打开图像路径。拖动链接时,Electron窗口会重定向到链接。
我试过这样说:
document.addEventListener('dragstart',function(event){
event.preventDefault();
return false;
},true);
document.addEventListener('drop',function(event){
event.preventDefault();
return false;
},true);
event.preventDefault()
上的 drop event
应该有效,但它没有
还尝试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);
答案 0 :(得分:13)
使用ES6语法的简明版本(在Electron 1.4.1下为我工作)
document.addEventListener('dragover', event => event.preventDefault())
document.addEventListener('drop', event => event.preventDefault())
答案 1 :(得分:11)
找到 Windows Electron v2.3.1的修复程序 Windows Electron v0.30.0
代码应该包含dragover
和drop
的监听器。
document.addEventListener('dragover',function(event){
event.preventDefault();
return false;
},false);
document.addEventListener('drop',function(event){
event.preventDefault();
return false;
},false);
如果您只收听dragover
或drop
,Electron仍会重定向到已删除的文件。
干杯!
答案 2 :(得分:0)
您可以在渲染过程中使用简单的CSS。
*, *::after, *::before {
-webkit-user-select: none;
-webkit-user-drag: none;
-webkit-app-region: no-drag;
cursor: default;
}