javascript如何阻止空格键

javascript如何阻止空格键,javascript,vue.js,Javascript,Vue.js,我正在构建一个应用程序,我想阻止空格键滚动我的页面 我正在使用VUE,并且正在使用事件处理程序调用方法 但是调用keymonitor方法会引发错误: 围绕箭头体的意外块语句;将返回值立即移动到=> 您知道如何正确调用“keymonitor”方法吗 window.addEventListener('keydown',e=>{ 返回此。键监视器(e) }) 按键监视器(事件){ if(this.sendkey==1){ if(event.key.length==1){ this.keyDown={

我正在构建一个应用程序,我想阻止空格键滚动我的页面

我正在使用VUE,并且正在使用事件处理程序调用方法

但是调用keymonitor方法会引发错误:

围绕箭头体的意外块语句;将返回值立即移动到
=>

您知道如何正确调用“keymonitor”方法吗

window.addEventListener('keydown',e=>{
返回此。键监视器(e)
})
按键监视器(事件){
if(this.sendkey==1){
if(event.key.length==1){
this.keyDown={
命令:“键盘”,
key:event.key,
}
}否则如果(
event.key===“输入”||
event.key==='Tab'||
event.key==='PageUp'||
event.key==='PageDown'||
event.key===“结束”||
event.key===='主页'||
event.key===“箭头左”||
event.key==='ArrowUp'||
event.key==='ArrowRight'||
event.key===“箭头向下”||
event.key==“退格”||
event.key==“删除”||
event.key===“转义”
) {
this.keyDown={
cmd:'键盘专用',
key:event.key,
}
//event.preventDefault();
}
console.log('eventkey:')
console.log(this.keyDown)
this.sendMessage(this.keyDown)
}
if(event.which==32){
console.log('SPACE')
}
返回错误

},
试试下面的代码-我对这里的
不太满意

const keymonitor=event=>{
if(this.sendkey==1){
if(event.key.length==1){
this.keyDown={
命令:“键盘”,
key:event.key,
}
}否则如果(
event.key===“输入”||
event.key==='Tab'||
event.key==='PageUp'||
event.key==='PageDown'||
event.key===“结束”||
event.key===='主页'||
event.key===“箭头左”||
event.key==='ArrowUp'||
event.key==='ArrowRight'||
event.key===“箭头向下”||
event.key==“退格”||
event.key==“删除”||
event.key===“转义”
) {
this.keyDown={
cmd:'键盘专用',
key:event.key,
}
//event.preventDefault();
}
console.log('eventkey:')
console.log(this.keyDown)
this.sendMessage(this.keyDown)
}
if(event.which==32){
console.log('SPACE')
event.preventDefault()
}
返回错误
}
window.addEventListener('keydown',keymonitor)
如果您在函数中将事件定义为参数,Keymonitor将自动将其作为参数获取,您确实这样做了

确保在功能键监视器之后添加window.addEventListener。否则它将超出范围。因为它还不存在

要实际阻止密钥工作,请执行以下操作:

if (event.which === 32) {
    console.log('SPACE')
    event.preventDefault();
  }

return false;

我为您创建了一个简化的工作示例,灵感来自

newvue({
el:“#应用程序”,
创建(){
window.addEventListener('keydown',e=>{
if(e.keyCode==32&&e.target==document.body){
警报(“阻止正文上的空格键”);
e、 预防默认值();
}
})
}
});
正文{
高度:100000像素;
}


它可能会要求您这样做:
window.addEventListener('keydown',e=>this.keymonitor(e))
我这样做了,但不知为什么空格键仍然有效(滚动页面),这意味着“return false”不起作用。你知道为什么吗?我会编辑awnser@mplungjan我只是在回答评论中提出的问题。甚至都没看你的帖子。。。我无法控制的是,JavaScription就是这样做的。在添加内容之前,重新加载并阅读其他答案总是很有用的。你永远不知道你将要写的答案是否与别人的完全相同,是否可以删除。这是我的一个学习点。下次我肯定会这么做:)我已经改变了调用方法,正如你们所展示的,但“returnfalse”似乎不起作用,因为空格键仍然会滚动我的页面。你知道为什么吗?你试过我添加的
event.preventDefault()
event.preventDefault()了吗?event.preventDefault()很好用。如果需要,如何禁用它?使用一个切换
if(disableSpace)事件。preventDefault()
并将disableSpace设置在美丽的地方,谢谢:D
if (event.which === 32) {
    console.log('SPACE')
    event.preventDefault();
  }

return false;