微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 拖动电子窗口外的html元素来复制本地文件?

我计划用electron实现一个音乐播放器.它将列出用户硬盘上的音乐.
是否可以定义拖放行为,以便我可以拖动一个html元素,例如< span>艺术家 – 标题< / span>在电子窗口外面进入用户桌面复制实际文件

文件存储在这里:〜/ music / Artist-Title.mp3.

当拖动从我的电子窗口到桌面的跨度时,应该制作一个副本:〜/ Desktop / Artist-Title.mp3.

解决方法:

工作范例:

放入main.js并复制拖动时显示的图标(yourAppDir / img / icon / folder.png):

const {ipcMain} = require('electron')

ipcMain.on('ondragstart', (event, filePath) => {
  event.sender.startDrag({
    file: filePath,
    icon: 'img/icon/folder.png'
  })
})

放入renderer.js,并设置要删除文件的路径:

var ipcRenderer = require('electron').ipcRenderer

document.getElementById('drag').ondragstart = (event) => {
    event.preventDefault()
    ipcRenderer.send('ondragstart', '/Users/tim/dev/test/elektron-drag-out-test/img/icon/folder.png')
  }

在index.html的body标签内创建可拖动元素:

...
<body>
  ...
  <a href="#" id="drag" class="draggable">drag item</a>
</body>
...

我还创建了一个gist用于拖入/拖出.

一个有用的资源:Electron – Add webContents.startDrag(item) API

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐