Situation: you’ve got a .swf embedded in an html page, and when you click on something in the .swf, it needs to popup a chromeless window. Normally this would be fairly easy – but consider Safari, which completely disables all ‘window.open’ functionality while its popup-blocker is enabled (it makes an exception if the function is triggered onclick, but it doesn’t count clicks in flash). How can you create something which gracefully degrades (provides an alternate and roughly equivalent experience) for browsers that won’t execute window.open?
(note: this is AS3, and Safari 3 for PC or Mac we’re talking about – but more broadly, any browser that doesn’t support or refuses to allow the javascript window.open function.)
If your SWF is loaded using
wmode='opaque'orwmode='transparent', then you could have the SWF output JavaScript code that would create an empty<div>that’s positioned over the SWF area. That<div>could then handle theonclickevent and create the popup window rather than the Flash code.