3

情况:您在 html 页面中嵌入了一个 .swf,当您单击 .swf 中的某些内容时,它需要弹出一个无镶边窗口。通常这会很容易 - 但考虑一下 Safari,它在启用弹出窗口阻止程序时完全禁用所有“window.open”功能(如果该功能被触发 onclick,它会例外,但它不计算 flash 中的点击次数) . 如何为不执行 window.open 的浏览器创建优雅降级(提供替代且大致等效的体验)的东西?

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

4

2 回答 2

1

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

于 2008-11-24T03:02:31.947 回答
0

div 叠加层比项目应得的更复杂 - 查看code.google.com/p/popupfromflash了解我想出的代码。

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

于 2010-02-26T00:46:27.663 回答