2008-11-23 96 views
3

情況:您已經將.swf嵌入到html頁面中,並且當您在.swf中單擊某件東西時,它需要彈出一個無鉻窗口。通常情況下,這很容易 - 但考慮Safari,它會在啓用彈出窗口阻止程序的同時完全禁用所有'window.open'功能(如果該功能是onclick觸發的,但不包括Flash中的點擊,則會發生異常) 。你怎麼能創建一個優雅的降級(提供了​​一個替代和粗略等同的經驗)的瀏覽器將不會執行window.open?來自嵌入式.swf跨瀏覽器的彈出窗口

(注:這是AS3,和Safari 3的PC或Mac,我們正在談論 - 更廣泛地說,不支持或拒絕任何瀏覽器允許使用JavaScript的window.open功能)

回答

1

如果您的SWF使用wmode='opaque'wmode='transparent'加載,那麼您可以使用SWF輸出JavaScript代碼創建位於SWF區域上的空<div><div>然後可以處理onclick事件並創建彈出窗口而不是Flash代碼。

+0

哇。這很棒。我喜歡。你必須做一些奇特的腳本來確保div在正確的時間出現在正確的位置,但這聽起來像是一個很好的解決方案。 – 2008-11-24 13:18:33

0

div覆蓋比項目更復雜 - 檢查出code.google.com/p/popupfromflash代碼我想出來。

它試圖使用ExternalInterface的設置一個window.open函數,如果失敗(特別是在Safari瀏覽器),它回調到閃存,並提示它做的navigateToUrl正常(而不是chromlessly)

彈出窗口