在前端项目中有时候会遇到对页面做出功能键限制的要求,比如说禁止使用复制粘贴、剪切或者右键等相关功能。其实只要想通了需求的本质就简单了,这些功能键的本质就是对相关事件进行监听,而在前端的事件监听中离不开addEventListener。废话不多说,直接上代码:
document.addEventListener(eventName,function(e){
e.preventDefault()
})
上面的代码在所有前端项目中均可通用,在vue项目中还可以适当的封装下,直接在main.js中进行全局设置,如下:
const globalEvents = ['cut','copy','paste','contextmenu','print'];//禁用剪切、复制、粘贴、右键菜单、页面打印事件。
globalEvents.forEach((eventName) => {
document.addEventListener(eventName,function(e){
e.preventDefault.
})
})
但有时候又需要在项目中某些页面局部进行功能键开放,咱直接在需要开放功能键的页面加入如下代码就行:
created(){
//方法一
document.addEventListener(eventName,(e) => {
e.preventDefault = () => {}
}, true);
//方法二
this.$nextTick(() => {
//这里可以根据自己的需要换成对应的事件监听
document.oncopy = new Function("event.returnValue = true");
})
}