WEB开发网
开发学院图形图像Flash 有关flash无法读取FireFox中Cookie的Bug解决方法 阅读

有关flash无法读取FireFox中Cookie的Bug解决方法

 2009-01-04 19:17:34 来源:WEB开发网   
核心提示:我之前写过文章“[AS3]有关Flash无法读取Firefox中的Cookie的Bug ”,关于这个Bug目前有一个变通的解决方法:/** * @author Kinglong * @version 0.1 */ package PRoject.util { import com.klstudio.uti

我之前写过文章“[AS3]有关Flash无法读取Firefox中的Cookie的Bug ”,关于这个Bug目前有一个变通的解决方法:

/** 
* @author Kinglong 
* @version 0.1 
*/ 
 
package PRoject.util { 
   
   import com.klstudio.util.StringUtil; 
   import flash.external.ExternalInterface; 
   
   public class UploadUtil{ 
     
     public function UploadUtil() {            
     } 
     
     public static function fixNoIEBug(url:String):String { 
       var index:int = url.indexOf("?"); 
       url += (index == -1)?"?ie=":"&ie="; 
       url += (isIE())?"1":"0" + getCookies();  
       return url; 
     } 
       
     public static function isIE():Boolean {      
       if (!ExternalInterface.available) { 
         return true; 
       } 
       return ExternalInterface.call("navigator.appVersion.indexOf","MSIE") != -1; 
     } 
     
     public static function getCookies():String { 
       if (!ExternalInterface.available) { 
         return "&c_userid=&c_passWord="; 
       } 
       var result:String = ""; 
       var cookieStr:String = ExternalInterface.call("function(){return document.cookie;}"); 
       var cookies:Array = cookieStr.split(';'); 
       var count:uint = 0; 
       for (var i:uint = 0; i < cookies.length; i++ ) { 
         var items:Array = cookies[i].split('='); 
         if (StringUtil.trim(items[0]) == "c_userid" || StringUtil.trim(items[0]) == "c_password") { 
           result += "&" + StringUtil.trim(items[0]) + "=" + StringUtil.trim(items[1]); 
           count ++; 
         } 
         if (count >= 2) { 
           break; 
         } 
       } 
       return result;      
     } 
     
   } 
   
}

看上面的代码就知道原理很简单,就是先判断是否为IE浏览器,如果是的话,服务端就通过正常的方式来读取Cookie值,否则的话,就通过客户端JS方法把cookie取到,然后再通过url传给服务端。

Tags:有关 flash 无法

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接