Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单击空格键时是否向下滚动页面?_Javascript_Jquery - Fatal编程技术网

Javascript 单击空格键时是否向下滚动页面?

Javascript 单击空格键时是否向下滚动页面?,javascript,jquery,Javascript,Jquery,正如您可能知道的,某些浏览器具有在单击空格键时向下滚动页面的默认功能。我通常喜欢这个功能,但由于我的网站的性质,我需要摆脱它 我一直在用 window.onkeydown = function(e) { return !(e.keyCode == 32); }; 这会占用所有空格键功能并完成任务,但是如果用户在输入注释或搜索查询时按空格键,则不会在文本中添加空格,因为此功能已被占用 那么,有没有办法只禁用滚动部分,而保留所有其他功能?可以尝试以下方法

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

我一直在用

      window.onkeydown = function(e) {
          return !(e.keyCode == 32);
      };
这会占用所有空格键功能并完成任务,但是如果用户在输入注释或搜索查询时按空格键,则不会在文本中添加空格,因为此功能已被占用

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

可以尝试以下方法:

window.onkeydown = function(e) {
          if(e.keyCode == 32 && e.target.nodeName.toUpperCase() === "BODY") e.preventDefault();
      };
也许可以试试这个:

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

可能需要对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中附加一个事件


加载页面和iframes后,您可以循环浏览
frames[]
集合。

可能需要均衡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中附加一个事件


加载页面和iframes后,您可以在
frames[]
集合中循环。

捕获在输入字段/文本区域发生的事件,并阻止它们冒泡到窗口;或者检查全局事件处理程序中的事件目标。@CBroe问题是页面的某些部分使用外部网站(如Discus评论系统)的iFrame,而我无法从这些页面捕获事件。我无法捕获在输入字段/文本区域发生的事件,并阻止它们冒泡到窗口;或者检查全局事件处理程序中的事件目标。@CBroe问题是页面的某些部分使用来自外部网站(如Discus评论系统)的iFrame,我无法从这些事件中捕获事件,直到被向下滚动/在这里工作:当窗口或文档仍被向下滚动时,可能尝试寻找更好的目标/在这里工作:可能尝试寻找一个更好的目标作为窗口或文档增益,如果我使用评论系统,如Discus,这是基于iFrames的,所以评论是从他们的网站加载的,而不是我的?尝试
window.parent.onkeydown来自iframe此代码没有访问iframe的权限,因此不会影响itagain,如果我使用基于iframe的Discus之类的评论系统,那么此功能是否有效,因此的评论是从他们的网站而不是我的网站加载的?请尝试
window.parent.onkeydown来自iframe此代码无权访问iframe,因此不会影响它