目录
1. 新建文件 disDrag.js
src\renderer\utils\disDrag.js
// 全局监听drag和drop事件,当用户拖入一个文件但是又不是拖入可拖拽区域的时候,将其屏蔽掉
// 避免electron应用像浏览器那样,拖入pdf或图片会自动打开
// 将此js通过mixin引入APP.vue中
// import disDrag from './utils/disDrag.js'
// mixins: [disDrag],
export default {
mounted () {
this.disableDragEvent()
},
methods: {
disableDragEvent () {
window.addEventListener('dragenter', this.disableDrag, false)
window.addEventListener('dragover', this.disableDrag)
window.addEventListener('drop', this.disableDrag)
},
disableDrag (e) {
const dropzone = document.getElementById('upload-area') // 这个是可拖拽的上传区
if (dropzone === null || !dropzone.contains(e.target)) {
e.preventDefault()
e.dataTransfer.effectAllowed = 'none'
e.dataTransfer.dropEffect = 'none'
}
}
},
beforeDestroy () {
window.removeEventListener('dragenter', this.disableDrag, false)
window.removeEventListener('dragover', this.disableDrag)
window.removeEventListener('drop', this.disableDrag)
}
}
2. 在app.vue中,通过mixins导入
src\renderer\App.vue
<script>
// 导入disDrag
import disDrag from "./utils/disDrag.js";
export default {
// 通过mixins加载
mixins: [disDrag],
};
</script>