隐藏并再次显示时,嵌入式元素(Flash)会拖动鼠标滚轮滚动

时间:2011-03-04 15:53:27

标签: jquery flash keyboard focus scribd

嘿大家,我会很感激一些见解。我已经研究了臭名昭着的“Flash hogging键盘焦点”问题,但我相信我们的问题可能涉及其他人已经遇到过的解决方法。我已经尝试过在stackoverflow和其他网站上找到的各种解决方案,我将在下面总结。

我们有一个网络应用程序,一个特定的界面加载我们用作“标签”的几个div。当用户单击其中一个选项卡时,我们会隐藏当前div并取消隐藏新的div。我们的主选项卡(在页面加载时加载)嵌入来自Scribd的文档,该文档作为Flash影片加载。当用户点击Flash影片时,他们会像平常一样使用鼠标/键盘滚动,当他们在文档控件外部单击时,会按预期返回。

当他们导航到另一个选项卡然后返回到原始选项卡并单击嵌入式Flash以在其中导航时,嵌入式Flash会窃取对鼠标滚动的控制权并且不会让它继续。用户可以单击此文档并使用箭头键滚动,然后单击文档并使用箭头键滚动父窗口,但鼠标滚动仍然绑定到嵌入的Flash影片。唯一的补救措施是刷新硬页面。

用户点击新标签时我尝试过的内容: 如果旧标签是“主页”,请从DOM中删除嵌入元素:

saved_element = $('[name="flash_embed_object_name"]').remove();

如果新标签为'home',请将元素添加回DOM:

$('#parent_div').append(saved_element);

这不起作用 - 我可以确认该元素是从DOM中删除的,但当它返回到DOM时,它会像以前一样点击鼠标滚动。 我也尝试过类似的解决方案,但不是删除我称之为

的元素

$('[name="flash_embed_object_name"]').blur();$('#clicked_tab_div').focus();

但这也没有帮助。有没有人有任何其他想法?我的下一个想法是,我不知何故需要停止播放Flash电影,然后它会将焦点返回到页面。

非常感谢任何输入。谢谢!

1 个答案:

答案 0 :(得分:0)

分辨率不是隐藏包含嵌入式Flash的div - 当这样做时,嵌入式元素会在再次显示时“刷新”。我们改变了元素的位置,基本上将它从视图中隐藏起来,但没有隐藏它。