navigateToURLを使って新しいウインドウを開く場合には、
ブラウザのポップアップブロックに引っかかるときがある。
navigateToURLでは無く、JavaScriptを使ってウインドウを開いてやれば良いらしい。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | < ?xml version="1.0" encoding="utf-8"?> < mx :Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical"> <mx :Script> < ![CDATA[ import flash.net.navigateToURL; private function openNewWindow( event:MouseEvent, url:String, winName:String, w:int, h:int, toolbar:int, location:int, directories:int, status:int, menubar:int, scrollbars:int, resizable:int):void{ var fullURL:String = "javascript:var myWin;" + "if(!myWin || myWin.closed)" + "{myWin = window.open('" + url + "','" + winName + "','" + "width=" + w + ",height=" + h + ",toolbar=" + toolbar + ",location=" + location + ",directories=" + directories + ",status=" + status + ",menubar=" + menubar + ",scrollbars=" + scrollbars + ",resizable=" + resizable + ",top='+((screen.height/2)-(" + h/2 + "))+'" + ",left='+((screen.width/2)-(" + w/2 + "))+'" + "')}" + "else{myWin.focus();};void(0);"; var u:URLRequest = new URLRequest(fullURL); navigateToURL(u,"_self"); } ]]> </mx> <mx :Button label="JavascriptFunction" click="openNewWindow(event, 'http://www.adobe.com/', 'adobe', 800, 600, 1, 1, 1, 1, 1, 1, 1);"/> <mx :Button label="navigateURL" click="{navigateToURL(new URLRequest('http://www.adobe.com/'));}" /> < /mx> |
メニューバーやツールバーの有無は0,1のフラグで渡す。
FireFoxとOperaとIEでは確かめてみたけど、確かにウインドウが開いた。
設定によると思うけど、FireFoxでは新しいタブとして開いた。
こういう場合を考えると、やっぱりwidthとheightは設定するべきじゃないなぁ。
ブラウザ全体のサイズが調整されてしまう。