Предотвратить перенаправление приложения "Электрон" при перетаскивании элементов "+" в окне
Мне не нужна функция drag+drop
в моем приложении, так как нет необходимости в ней. Поэтому я хочу полностью удалить функцию drag+drop
окна. Пока при перетаскивании изображений окно 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;
});
Также не удалось. Любые идеи, как это исправить?
removeEventListener() также не удалось
var listener = function (event) {
console.log('foo');
};
document.removeEventListener('drop',listener,false);
Ответы
Ответ 1
Найдено исправление для 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
.
Ура!
Ответ 2
Краткая версия с использованием синтаксиса ES6 (работает для меня под Electron 1.4.1)
document.addEventListener('dragover', event => event.preventDefault())
document.addEventListener('drop', event => event.preventDefault())