Подтвердить что ты не робот

Предотвратить перенаправление приложения "Электрон" при перетаскивании элементов "+" в окне

Мне не нужна функция 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);
4b9b3361

Ответ 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())