我有一个网页,用户可以在其中玩 flash 游戏。我们现在正在对要求游戏嵌入 wmode=transparent
或 wmode=opaque
的页面进行一些更改,以便我们可以在顶部显示 HTML 元素快闪游戏。问题是在 Internet Explorer(所有版本)中,如果用户按下向上/向下箭头键,整个页面将滚动。我已经尝试了所有我能想到的方法,并且花了一整天的时间寻找解决方案但没有成功。
到目前为止,我已经尝试将游戏放入 iframe 中,并尝试使用 JS 禁用向上/向下键,但都没有解决我的问题。
要求是:wmode 必须是透明
或不透明
并且我不能修改flash 游戏。
最佳答案
在 Flash 中使用 wmode=transparent
时防止滚动的唯一方法是防止使用箭头键滚动整个页面。 This page总结得最好。
基本上,当 transparent
模式处于事件状态时,IE 中的键盘事件会传播到浏览器;我不知道如何防止滚动(尚未测试),但你基本上必须防止全局键盘滚动。
This discussion突出显示 IE8 的可能解决方法,以及使用 jQuery 的实现示例 here .我现在没有 IE 副本,但可能值得一试。
据我所知,Flash 中的游戏通常不能很好地与 wmode=transparent
配合使用,因为焦点可能会在没有用户交互的情况下被窃取。您最好的选择是重新设计页面,以免要求 Flash 具有 HTML 覆盖层(甚至 YouTube 也避免在其页面上设置 transparent
,并且他们拥有全部内容)。
关于javascript - 当 flash 具有焦点时防止在 IE 中滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6177032/