0

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

我们有一个网络应用程序,一个特定的界面加载了几个我们用作“选项卡”的 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 电影,然后它将焦点返回到页面。

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

4

1 回答 1

0

解决方案不是隐藏包含嵌入式 Flash 的 div——这样做时,嵌入式元素会在再次显示时“刷新”。我们更改了元素的位置以从根本上隐藏它,但没有隐藏它。

于 2011-03-09T22:46:40.363 回答