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,因此不会影响它