当闪光灯聚焦时,防止在IE中滚动

问题描述

| 我有一个网页,用户可以在其中玩Flash游戏。现在,我们对页面进行了一些更改,该页面要求将游戏嵌入到“ 0”或“ 1”中,以便我们可以在Flash游戏的顶部显示HTML元素。问题在于,如果用户按下向上/向下箭头键,则在Internet Explorer(所有版本)中,整个页面都会滚动。我已经尝试了所有我能想到的东西,并且花了整整一天的时间寻找成功的解决方案。 到目前为止,我已经尝试将游戏放入iframe中,并尝试使用JS禁用上/下键,但这些都不能解决我的问题。 要求是:wmode必须为
transparent
opaque
,并且我无法修改Flash游戏。     

解决方法

        在Flash中使用
wmode=transparent
时,防止滚动的唯一方法是防止使用箭头键滚动整个页面。此页面总结得最好。 基本上,当“ 2”模式处于活动状态时,IE中的键盘事件会传播到浏览器。我不知道如何防止滚动(未经测试),但是您基本上必须防止全局键盘滚动。 本讨论重点介绍了IE8的一种可能的解决方法,并在此处使用jQuery的实现示例。我现在没有IE的副本,但可能值得尝试。 但是,由于AFAIK,Flash中的游戏通常在ѭ0时不能很好地工作,因为可以在没有用户交互的情况下窃取焦点。最好的办法是重新整理页面,以免Flash带有HTML叠加层(即使YouTube避免在页面上设置
transparent
,并且他们拥有全部内容)。     ,        在拦截任何关键动作之前,用户需要先将Flash影片聚焦。实际上,这是一种很好的行为,不应更改。 最好以某种方式要求用户自动对电影进行对焦,这可能是一个好主意,方法是在其上放一些他们首先需要单击的开始按钮。然后,所有关键操作都应发送到Flash。     ,        如果可以的话,一些JS魔术怎么样? http://api.jquery.com/keypress/ http://api.jquery.com/event.preventDefault/ 在对象/嵌入标签上注册KeyPress事件处理程序。假设您有ID为#flashobj的Flash对象 $(\'#flashobj \')。keypress(function(event){event.preventDefault();}); 或者,更棘手的是,如果无法在Flash对象/嵌入上进行绑定,则可以在整个窗口上绑定按键,然后检查以下内容: 如果(event.target.tagName.toLower()== \“ object \”)... 里程可能会有所不同,因为我记得它event.target不是很可靠... 希望flash能够捕获键盘事件,并且页面将忽略它。我知道您说过您尝试过,但是您的方法可能有所不同(我建议了两种截然不同的方法,一种可能有效)     ,        似乎根本无法解决此问题。我们只需要接受一个事实,即HTML内容(在我们的案例中为FB,如聊天)将隐藏在Flash游戏之后。 但我仍然希望有人能证明我错了:)     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...