Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 拖动时防止Electron app重定向+;在窗口中放置项目_Javascript_Electron - Fatal编程技术网

Javascript 拖动时防止Electron app重定向+;在窗口中放置项目

Javascript 拖动时防止Electron app重定向+;在窗口中放置项目,javascript,electron,Javascript,Electron,我不想在我的应用程序中使用拖放功能,因为不需要它。因此,我想完全删除窗口的拖放功能。到目前为止,拖动图像时,电子窗口会打开图像路径。拖动链接时,Electron窗口将重定向到链接 我试着称之为: document.addEventListener('dragstart',function(event){ event.preventDefault(); return false; },true); document.addEventListener('drop',fu

我不想在我的应用程序中使用
拖放
功能,因为不需要它。因此,我想完全删除窗口的
拖放功能。到目前为止,拖动图像时,电子窗口会打开图像路径。拖动链接时,Electron窗口将重定向到链接

我试着称之为:

  document.addEventListener('dragstart',function(event){
    event.preventDefault();
    return false;
  },true);

  document.addEventListener('drop',function(event){
    event.preventDefault();
    return false;
  },true);
drop事件
上的
event.preventDefault()
本应起作用,但没有起作用

还尝试:

也失败了。有没有办法解决这个问题

也失败了

  var listener = function (event) {
    console.log('foo');
  };
  document.removeEventListener('drop',listener,false);
找到了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仍将重定向到删除的文件

  document.addEventListener('dragover',function(event){
    event.preventDefault();
    return false;
  },false);

  document.addEventListener('drop',function(event){
    event.preventDefault();
    return false;
  },false);

干杯

使用ES6语法的简明版本(在Electron 1.4.1下为我工作)


您可以在渲染过程中使用简单的css

        *, *::after, *::before {
        -webkit-user-select: none;
        -webkit-user-drag: none;
        -webkit-app-region: no-drag;
        cursor: default;
    }

您不应该通过id/class将事件侦听器附加到的元素作为目标吗?由于要删除事件,您不想使用
removeEventlistener()
吗?用于拖动事件的函数是外部函数吗?我相信removeEventListener只适用于外部功能。如果是的话,你知道这个函数被调用了吗。“用于使元素可拖动的一个”您试图通过以事件侦听器为目标来取消函数,这告诉我某个事件侦听器正在触发函数执行某些操作,因此希望取消/覆盖它。我问你这个函数是外部函数还是附加到事件侦听器。啊,我明白了!我想我帮不了什么忙。我希望你能找到解决办法。
        *, *::after, *::before {
        -webkit-user-select: none;
        -webkit-user-drag: none;
        -webkit-app-region: no-drag;
        cursor: default;
    }