代码之家  ›  专栏  ›  技术社区  ›  matt lohkamp

从Embedded.swf交叉浏览器弹出

  •  3
  • matt lohkamp  · 技术社区  · 16 年前

    情境:HTML页面中嵌入了一个.swf文件,当你点击.swf文件中的某个文件时,它需要弹出一个无铬窗口。通常情况下,这是相当容易的-但考虑到Safari,它完全禁用了所有的“window.open”功能,而它的弹出窗口拦截器是启用的(如果函数是一次单击触发的,它会例外,但它不计算在闪存中的单击)。如何为那些不执行window.open的浏览器创建一个优雅的降级(提供一个替代的和大致相同的体验)的东西?

    (注意:这是AS3,而Safari 3是针对PC或Mac的,但更广泛地说,任何不支持或拒绝使用javascript window.open功能的浏览器。)

    2 回复  |  直到 11 年前
        1
  •  1
  •   Ben Combee    16 年前

    如果您的SWF加载使用 wmode='opaque' wmode='transparent' ,然后您可以使用SWF输出的javascript代码来创建一个空的 <div> 位于SWF区域上方。那 <DIV & GT; 然后可以处理 onclick 事件并创建弹出窗口而不是闪存代码。

        2
  •  0
  •   matt lohkamp    13 年前

    DIV覆盖比项目所需的复杂-签出 code.google.com/p/popupfromflash 为了我想出的密码。

    它尝试使用ExternalInterface来设置window.open函数,如果失败(特别是在Safari中),它会调用flash并提示它执行navigateToURL以正常弹出窗口(而不是无颜色)。