【问题标题】:Embedded element (Flash) hogs mouse wheel scrolling when hidden and displayed again嵌入元素(Flash)在隐藏和再次显示时占用鼠标滚轮滚动
【发布时间】:2011-07-08 22:34:27
【问题描述】:

大家好,我将不胜感激。我研究了臭名昭著的“Flash hogging keyboard focus”问题,但我相信我们的问题可能涉及其他人已经遇到的解决方法。我已经尝试了在 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 电影,然后它将焦点返回到页面。

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

【问题讨论】:

  • 你能解释一下解决方案吗?我有一个从 jquery ajax 调用中检索到的表和嵌入式 pdf。鼠标焦点在 pdf 上,我无法滚动表格。
  • 我相信解决方案涉及我们将嵌入元素留在那里,但操纵它的位置使其脱离可视屏幕。当包含元素被隐藏并再次显示时,它会导致一些问题。不幸的是,我相信你的情况有点不同。

标签: jquery flash keyboard focus scribd


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2022-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多