javascript – 使用iframe阻止对按键的默认操作
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 使用iframe阻止对按键的默认操作,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1698字,纯文字阅读大概需要3分钟。
内容图文
![javascript – 使用iframe阻止对按键的默认操作](/upload/InfoBanner/zyjiaocheng/748/d877bd021719490c9323a83600474a6b.jpg)
这是一个问题22我真的无法弄清楚如何解决.以我们主持的HTML5游戏为例:
http://www.scirra.com/arcade/action/93/8-bits-runner – 警告声音!
该页面托管在scirra.com上,但出于安全原因,该游戏位于static1.scirra.net上的iframe中.
现在,如果你在玩游戏时向左或向右,向上或向下按,则整个窗口上下左右滚动.当游戏没有集中时,防止默认似乎工作正常.我们希望在玩游戏时防止此默认操作!所以我们使用代码:
var ar = new Array(32, 33, 34, 35, 36, 37, 38, 39, 40, 44);
$(document).keydown(function (e) {
var key = e.which;
if ($.inArray(key, ar) > -1) {
e.preventDefault();
return false;
}
return true;
});
我们将它放在父页面和iframe页面上.当iframe左右焦点似乎被阻挡,但没有上下.
任何人都可以帮助我们解决如何停止页面滚动,并仍然允许人们在游戏下方的评论框中键入评论?如果你阻止空格键,它会阻止人们在文本中添加空格!
解决方法:
我可能不完全理解这个问题,但似乎你想要:
>上,下,空间等仅在有焦点时才进入游戏窗口.
>上,下,空格等,以便在有焦点时转到评论框.
>上,下,空格等,当有焦点时进入主窗口.
数字#2和#3是你什么也不做的自动发生的事情.所以基本上你想要#1.我不明白为什么你需要在主窗口上的任何代码.
这在我的测试中适用于Chrome,Opera,FF,IE9,IE8,IE7.
主窗口
演示:http://jsfiddle.net/ThinkingStiff/Dp5vK/
HTML:
<iframe id="game" src="http://jsfiddle.net/ThinkingStiff/dtmxy/show/"></iframe>
<textarea id="comment-box"></textarea>
CSS:
#game {
border: 1px solid red;
display: block;
height: 100px;
width: 200px;
}
#comment-box {
height: 100px;
width: 200px;
}
body {
height: 1000px;
width: 1000px;
}
游戏窗口(iframe)
演示:http://jsfiddle.net/ThinkingStiff/dtmxy/
脚本:
$( document ).bind( 'keydown', function ( event ) {
var keys = [32, 33, 34, 35, 36, 37, 38, 39, 40, 44];
if( keys.indexOf( event.which ) > -1 ) {
event.preventDefault();
event.stopPropagation();
};
} );
内容总结
以上是互联网集市为您收集整理的javascript – 使用iframe阻止对按键的默认操作全部内容,希望文章能够帮你解决javascript – 使用iframe阻止对按键的默认操作所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。