Javascript 防止空格键和箭头键滚动网页?

Javascript 防止空格键和箭头键滚动网页?,javascript,Javascript,当一个元素在网页上提供键盘支持时,我覆盖了空格键和箭头键的行为。我需要禁用这些键的默认行为,即滚动网页。我认为在处理事件时,只需返回false即可,但这并没有起作用。我还添加了preventDefault,但它除了执行自定义操作外,还可以滚动页面。这里有什么问题 document.getElementById('someID').onkeyup = function(e) { var keyCode = e.which || e.keyCode; var handled = fa

当一个元素在网页上提供键盘支持时,我覆盖了空格键和箭头键的行为。我需要禁用这些键的默认行为,即滚动网页。我认为在处理事件时,只需返回false即可,但这并没有起作用。我还添加了
preventDefault
,但它除了执行自定义操作外,还可以滚动页面。这里有什么问题

document.getElementById('someID').onkeyup = function(e) {
    var keyCode = e.which || e.keyCode;
    var handled = false;

    if (keyCode == 38 || keyCode == 40) { //up or down arrow
        //do something fun
        e.preventDefault();
        handled = true;
    }

    return !handled; //return false if the event was handled
}

将事件更改为
onkeydown
。当您到达
onkeyup
时,已经太晚了,滚动已经改变

document.getElementById('someID').onkeydown = function(e) {
    var keyCode = e.which || e.keyCode;
    var handled = false;

    if (keyCode == 38 || keyCode == 40) { //up or down arrow
        //do something fun
        e.preventDefault();
        handled = true;
    }

    return !handled; //return false if the event was handled
}

将事件更改为
onkeydown
。当您到达
onkeyup
时,已经太晚了,滚动已经改变

document.getElementById('someID').onkeydown = function(e) {
    var keyCode = e.which || e.keyCode;
    var handled = false;

    if (keyCode == 38 || keyCode == 40) { //up or down arrow
        //do something fun
        e.preventDefault();
        handled = true;
    }

    return !handled; //return false if the event was handled
}

您是否尝试过按下键?当我在一个网站上测试空格键时,当我按下键时,空格键好像跳了下来,当我放开键时,空格键没有跳下来。问题出在@Xero的副本上!好吧,如果你愿意的话,你可以接受我刚刚发布的答案。看到标题后我的第一个想法是“你为什么要那样做?”。然后我开始读实际的问题,然后说“哦,好的”。你试过键下键吗?当我在一个网站上测试空格键时,当我按下键时,空格键好像跳了下来,当我放开键时,空格键没有跳下来。问题出在@Xero的副本上!好吧,如果你愿意的话,你可以接受我刚刚发布的答案。看到标题后我的第一个想法是“你为什么要那样做?”。然后我开始读实际的问题,然后说“哦,好的”。