package com.ylsoft.lib{
import flash.external.ExternalInterface;
import flash.net.URLRequest;
import flash.net.navigateToURL;
public class WebWindow {
public function openWindow(url:String, window:String="_blank", features:String=""){
var WINDOW_OPEN_FUNCTION:String = "window.open";
var myURL:URLRequest = new URLRequest(url);
var browserName:String = getBrowserName();
if(getBrowserName() == "maxthon"){
navigateToURL(myURL, window);
}
//If IE,
else if(browserName == "firefox"){
navigateToURL(myURL, window);
}
//If Safari
else if(browserName == "chrome"){
ExternalInterface.call(WINDOW_OPEN_FUNCTION, url, window, features);
}
//If Opera
else if(browserName == "msie"){
ExternalInterface.call(WINDOW_OPEN_FUNCTION, url, window, features);
}
else if(browserName == "safari"){
ExternalInterface.call(WINDOW_OPEN_FUNCTION, url, window, features);
}
else {
navigateToURL(myURL, window);
}
/*Alternate methodology...
var popSuccess:Boolean = ExternalInterface.call(WINDOW_OPEN_FUNCTION, url, window, features);
if(popSuccess == false){
navigateToURL(myURL, window);
}*/
}
private function getBrowserName():String{
var browser:String;
//Uses external interface to reach out to browser and grab browser useragent info.
var browserAgent:String = ExternalInterface.call("function getBrowser(){return navigator.userAgent.toLowerCase();}");
// Debug.text += "Browser Info: [" + browserAgent + "]";
//Determines brand of browser using a find index. If not found indexOf returns (-1).
if(browserAgent != null && /(.*)maxthon(.*)/.test(browserAgent)) {
browser = "maxthon";
}
else if(browserAgent != null && /(.*)firefox(.*)/.test(browserAgent)){
browser = "firefox";
}
else if(browserAgent != null && /(.*)chrome(.*)/.test(browserAgent)){
browser = "chrome";
}
else if(browserAgent != null && /(.*)msie(.*)/.test(browserAgent)){
browser = "msie";
}
else if(browserAgent != null && /(.*)mozilla(.*)/.test(browserAgent) && !/(.*)firefox(.*)/.test(browserAgent) && !/(.*)chrome(.*)/.test(browserAgent) && !/(.*)msie(.*)/.test(browserAgent)){
browser = "safari";
}
return browser;
}
}
}