单击空格键时不要向下滚动页面?

时间:2013-06-09 14:00:51

标签: javascript jquery

您可能知道某些浏览器具有此默认功能,可在单击空格键时向下滚动页面。我通常喜欢这个功能,但由于我的网站的性质,我需要摆脱它。

我一直在使用

      window.onkeydown = function(e) {
          return !(e.keyCode == 32);
      };

它会占用所有空格键功能并完成工作,但是如果用户输入注释或搜索查询并按空格键,则文本中不会添加空格,因为此功能已被占用。

那么有没有办法只禁用滚动部分并保留所有其他功能?

3 个答案:

答案 0 :(得分:2)

也许试试这个:

window.onkeydown = function(e) {
          if(e.keyCode == 32 && e.target.nodeName.toUpperCase() === "BODY") e.preventDefault();
      };

答案 1 :(得分:2)

window.onkeydown = function(e) {
    return !(e.keyCode == 32 && (e.target.type != 'text' && e.target.type != 'textarea'));
};

答案 2 :(得分:0)

可能需要为IE进行均衡:

window.onkeydown = function(e) {
    var evt = e || window.event;
    var elem = evt.target || evt.srcElement;
    if(e.keyCode == 32 && elem.nodeName.toUpperCase() === "BODY") {
        evt.preventDefault();
        return false;
    }
};

(未测试的)

但您需要使用iframeref.contentWindow将事件附加到每个iframe中/内。

在页面和iframe加载后,您可以遍历frames[]集合。