{"id":11,"date":"2008-05-20T11:02:59","date_gmt":"2008-05-20T18:02:59","guid":{"rendered":"http:\/\/www.nayansavla.com\/blog\/?p=11"},"modified":"2008-05-20T11:02:59","modified_gmt":"2008-05-20T18:02:59","slug":"allowing-popups-to-work","status":"publish","type":"post","link":"https:\/\/www.nayansavla.com\/blog\/?p=11","title":{"rendered":"Allowing Popups to work"},"content":{"rendered":"<p>In AS 2.0 or earlier when you use getURL to open up a new browser window, usually it wouldn&#8217;t get blocked by popups if the getURL call was made onRelease event instead of onPress. But with navigateToURL introduced in AS 3.0 its a different story altogether.\u00a0<\/p>\n<p>navigateToURL works fine with Safari but doesn&#8217;t work in Firefox (I am a mac user so i personally test in these two browsers). Anyway to make sure that popups open we have to use some javascript and call it from our Flash.<\/p>\n<p>Adobe recommends we use ExternalInterface since the 9.0.124 <a title=\"Article\" href=\"http:\/\/www.adobe.com\/devnet\/flashplayer\/articles\/flash_player9_security_update.html\" target=\"_blank\">update<\/a>. So here is my Flash code,<\/p>\n<div class=\"codecolorer-container actionscript default\" style=\"overflow:auto;white-space:nowrap;width:435px;\"><div class=\"actionscript codecolorer\"><span class=\"kw2\">var<\/span> <span class=\"kw3\">boolean<\/span>:<span class=\"kw3\">String<\/span> = ExternalInterface.<span class=\"kw3\">call<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;openWindow&quot;<\/span>, <span class=\"kw3\">url<\/span><span class=\"br0\">&#41;<\/span>;<br \/>\n<br \/>\n<span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"kw3\">boolean<\/span> == <span class=\"st0\">&quot;false&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span><br \/>\n\u00a0\u00a0 \u00a0navigateToURL<span class=\"br0\">&#40;<\/span><span class=\"kw2\">new<\/span> URLRequest<span class=\"br0\">&#40;<\/span><span class=\"kw3\">url<\/span><span class=\"br0\">&#41;<\/span>,<span class=\"st0\">&quot;_blank&quot;<\/span><span class=\"br0\">&#41;<\/span>;<br \/>\n<br \/>\n<span class=\"br0\">&#125;<\/span><\/div><\/div>\n<p>and my Javascript would look something like this,<\/p>\n<div class=\"codecolorer-container javascript default\" style=\"overflow:auto;white-space:nowrap;width:435px;\"><div class=\"javascript codecolorer\"><span class=\"kw1\">function<\/span> openWindow<span class=\"br0\">&#40;<\/span>pageUrl<span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span><br \/>\n\u00a0\u00a0 \u00a0<span class=\"kw1\">var<\/span> winName <span class=\"sy0\">=<\/span> <span class=\"kw4\">Math<\/span>.<span class=\"me1\">round<\/span><span class=\"br0\">&#40;<\/span><span class=\"nu0\">9999<\/span><span class=\"sy0\">*<\/span><span class=\"kw4\">Math<\/span>.<span class=\"me1\">random<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"sy0\">+<\/span> <span class=\"kw1\">new<\/span> <span class=\"kw4\">Date<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span>.<span class=\"me1\">getTime<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n\u00a0\u00a0 \u00a0<span class=\"kw1\">var<\/span> winNew <span class=\"sy0\">=<\/span> window.<span class=\"me1\">open<\/span><span class=\"br0\">&#40;<\/span>pageUrl<span class=\"sy0\">,<\/span>winName<span class=\"sy0\">,<\/span><span class=\"st0\">&quot;toolbar=1,scrollbars=1,location=1,statusbar=0,menubar=0,resizable=1,width=800,height=700,left=200,top=100&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\n\u00a0\u00a0 \u00a0 \u00a0 \u00a0<span class=\"kw1\">if<\/span><span class=\"br0\">&#40;<\/span><span class=\"sy0\">!<\/span>winNew<span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span><br \/>\n\u00a0\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"kw1\">return<\/span> <span class=\"st0\">&quot;false&quot;<\/span><span class=\"sy0\">;<\/span><br \/>\n\u00a0\u00a0 \u00a0 \u00a0 \u00a0<span class=\"br0\">&#125;<\/span>\u00a0<span class=\"kw1\">else<\/span> <span class=\"br0\">&#123;<\/span><br \/>\n\u00a0\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"kw1\">return<\/span> <span class=\"st0\">&quot;true&quot;<\/span><span class=\"sy0\">;<\/span><br \/>\n\u00a0\u00a0 \u00a0 \u00a0 \u00a0<span class=\"br0\">&#125;<\/span><br \/>\n\u00a0\u00a0 \u00a0<span class=\"br0\">&#125;<\/span><\/div><\/div>\n<p>So with this method we first try to open a window using Javascript, Firefox is happy with that and hence it returns true and flash doesn&#8217;t make a call to navigateToUrl. Safari blocks the javascript popup and hence true is returned to Flash and using navigateToUrl you can open up a new browser window.<\/p>\n<p>It seems to work with IE as well otherwise i would have got a bug reported from the QA team. \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In AS 2.0 or earlier when you use getURL to open up a new browser window, usually it wouldn&#8217;t get blocked by popups if the getURL call was made onRelease event instead of onPress. But with navigateToURL introduced in AS 3.0 its a different story altogether.\u00a0 navigateToURL works fine with Safari but doesn&#8217;t work in [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,3],"tags":[11,14,12,13,10],"class_list":["post-11","post","type-post","status-publish","format-standard","hentry","category-as-30","category-actionscript","tag-as3","tag-external-interface","tag-geturl","tag-navigatetourl","tag-popups"],"_links":{"self":[{"href":"https:\/\/www.nayansavla.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/11","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.nayansavla.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.nayansavla.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.nayansavla.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.nayansavla.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=11"}],"version-history":[{"count":0,"href":"https:\/\/www.nayansavla.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/11\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.nayansavla.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=11"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.nayansavla.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=11"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.nayansavla.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=11"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}