阻止 SPACE 和 ARROW 滚动 [游戏 Iframe]
Prevent SPACE and ARROW from scrolling [Game Iframe]
当游戏专注于儿童在线游戏网站时,我无法阻止 Space 和箭头滚动 down/up。
要在网页上阻止此功能,我知道,我们可以使用:
window.addEventListener("keydown", function(e) {
if(["Space","ArrowUp","ArrowDown","ArrowLeft","ArrowRight"].indexOf(e.code) > -1) {
e.preventDefault();
}
}, false);
但是,问题出在游戏聚焦的时候。
游戏是通过 iframe
镜像的,一旦用户点击游戏并且游戏 iframe 获得焦点,上面的 code
将不再起作用。
当然,这很令人沮丧,因为在我们的游戏中,您需要使用 Space 或 Up/Down 箭头来移动、跳跃或执行其他操作 - 但只要您按下这些按钮,页面将开始滚动。
页面示例:
...
<body>
<iframe src="https://example.com/game/game21/index.html" width="X" height="Y"></iframe>
...
我没有修改src页面的权限。
你不见了e.stopPropagation();
。试试这个:
window.addEventListener("keydown", function(e) {
if(["Space","ArrowUp","ArrowDown","ArrowLeft","ArrowRight"].indexOf(e.code) > -1) {
e.preventDefault();
e.stopPropagation();
}
});
当游戏专注于儿童在线游戏网站时,我无法阻止 Space 和箭头滚动 down/up。
要在网页上阻止此功能,我知道,我们可以使用:
window.addEventListener("keydown", function(e) {
if(["Space","ArrowUp","ArrowDown","ArrowLeft","ArrowRight"].indexOf(e.code) > -1) {
e.preventDefault();
}
}, false);
但是,问题出在游戏聚焦的时候。
游戏是通过 iframe
镜像的,一旦用户点击游戏并且游戏 iframe 获得焦点,上面的 code
将不再起作用。
当然,这很令人沮丧,因为在我们的游戏中,您需要使用 Space 或 Up/Down 箭头来移动、跳跃或执行其他操作 - 但只要您按下这些按钮,页面将开始滚动。
页面示例:
...
<body>
<iframe src="https://example.com/game/game21/index.html" width="X" height="Y"></iframe>
...
我没有修改src页面的权限。
你不见了e.stopPropagation();
。试试这个:
window.addEventListener("keydown", function(e) {
if(["Space","ArrowUp","ArrowDown","ArrowLeft","ArrowRight"].indexOf(e.code) > -1) {
e.preventDefault();
e.stopPropagation();
}
});