情况:你在html页面中嵌入了.swf,当你点击.swf中的内容时,它需要弹出一个无边框窗口。通常情况下这很容易 - 但考虑一下Safari,它会在启用弹出窗口阻止程序时完全禁用所有'window.open'功能(如果触发该功能点击它会产生异常,但它不计算闪存中的点击次数) 。如何为不能执行window.open的浏览器创建优雅降级(提供备用和大致相同的体验)的内容?
(注意:这是AS3,我们正在谈论的是针对PC或Mac的Safari 3 - 但更广泛地说,任何不支持或拒绝允许javascript window.open功能的浏览器。)
答案 0 :(得分:1)
如果使用wmode='opaque'
或wmode='transparent'
加载了SWF,那么您可以使用SWF输出JavaScript代码创建一个位于SWF区域上方的空<div>
。那么<div>
可以处理onclick
事件并创建弹出窗口而不是Flash代码。
答案 1 :(得分:0)
它尝试使用ExternalInterface来设置window.open函数,如果失败(特别是在Safari中),它会调回flash并提示它执行navigateToURL以正常弹出窗口(而不是无色)