您可能知道某些浏览器具有此默认功能,可在单击空格键时向下滚动页面。我通常喜欢这个功能,但由于我的网站的性质,我需要摆脱它。
我一直在使用
window.onkeydown = function(e) {
return !(e.keyCode == 32);
};
它会占用所有空格键功能并完成工作,但是如果用户输入注释或搜索查询并按空格键,则文本中不会添加空格,因为此功能已被占用。
那么有没有办法只禁用滚动部分并保留所有其他功能?
答案 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[]
集合。