【问题标题】:How do I create a popup from Flex without a browser toolbar?如何在没有浏览器工具栏的情况下从 Flex 创建弹出窗口?
【发布时间】:2009-08-21 19:37:56
【问题描述】:

我正在尝试从 Flex 启动一个弹出窗口,但弹出窗口需要具有某些属性,因为通常可以使用 JavaScript window.open 指定。例如,弹出窗口不应有浏览器工具栏或 URL 框。

我尝试过使用 navigateToURL,效果很好,但我找不到指定弹出窗口属性的方法。

我尝试过使用 ExternalInterface.call,但是直接调用 window.open 时弹出窗口被阻止,甚至创建调用 window.open 的自定义 JS 函数。

救命!

谢谢!

【问题讨论】:

  • 请不要。没有工具栏/地址栏的弹出窗口是安全和可用性灾难,这就是为什么现在一些浏览器不会让你完全停止。人们过去使用无铬弹出窗口的大多数事情现在通常使用页面内弹出元素来完成。

标签: apache-flex popup externalinterface navigatetourl


【解决方案1】:

我认为在很多浏览器中禁用浏览器工具栏或 URL 框是不可能的(我当然不允许在我使用的任何浏览器上这样做)。

如果你使用navigateToURL,为什么你打开的页面不能运行JS来尝试禁用工具栏和URL?如果您想发送属性,我认为您也可以将属性附加到 URL。

【讨论】:

  • 我很确定大多数与 JS 兼容的浏览器都支持通过 window.open 方法设置弹出窗口的样式,但 Flex 似乎不支持这一点......而且我不确定即时执行的方法(打开窗口后)
  • 看看这个页面:adobe.com/cfusion/communityengine/…你可以将javascript参数传递给window.open()函数。只需替换为您要使用的即可。再一次,此类功能(删除地址栏等)不适用于我正在使用的任何浏览器。
【解决方案2】:

您可以使用 Flex 的 PopUpManager 类来创建自定义弹出框。

这个例子可以帮助你。 Custom PopUp

【讨论】:

  • 我不想创建一个灵活的弹出窗口...我正在寻找一个浏览器窗口弹出窗口。
【解决方案3】:

查看 AndrewT 关于检查弹出窗口拦截器的博客。 如果没有被阻塞,则使用 E​​xternalInterface;否则使用弹性弹出窗口。

Detecting Popup Blockers

或者更好的是,使用 SWFAddress v2.3(javascript 和 AS3)模块。 AS3 具有 SWFAddress::popup() 外观,可将 poup 调用代理到 ​​javascript。您可以修改 SWFAdress.js 弹出函数以使用 Andrew 的逻辑并返回一个状态。这将是一个最佳实践:利用 flex 中最高级的 SWFAddress 库进行深度链接、谷歌分析和弹出窗口。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-07
    • 1970-01-01
    • 2011-05-03
    • 2015-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多