来自嵌入式.swf跨浏览器的弹出窗口

时间:2008-11-23 19:54:26

标签: javascript actionscript-3 safari popup

情况:你在html页面中嵌入了.swf,当你点击.swf中的内容时,它需要弹出一个无边框窗口。通常情况下这很容易 - 但考虑一下Safari,它会在启用弹出窗口阻止程序时完全禁用所有'window.open'功能(如果触发该功能点击它会产生异常,但它不计算闪存中的点击次数) 。如何为不能执行window.open的浏览器创建优雅降级(提供备用和大致相同的体验)的内容?

(注意:这是AS3,我们正在谈论的是针对PC或Mac的Safari 3 - 但更广泛地说,任何不支持或拒绝允许javascript window.open功能的浏览器。)

2 个答案:

答案 0 :(得分:1)

如果使用wmode='opaque'wmode='transparent'加载了SWF,那么您可以使用SWF输出JavaScript代码创建一个位于SWF区域上方的空<div>。那么<div>可以处理onclick事件并创建弹出窗口而不是Flash代码。

答案 1 :(得分:0)

div叠加比项目应该更复杂 - 请查看code.google.com/p/popupfromflash以获取我提出的代码。

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