收藏本站腾讯微博新浪微博

经典论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

蓝色理想 最新研发动态 网站开通淘帖功能 - 蓝色理想插件 论坛内容导读一页看论坛 - 给官方提建议

论坛活动及任务 地图和邮件任务 请多用悬赏提问 热夏来袭,选一款蓝色理想的个性T恤吧!

手机上论坛,使用APP获得更好体验 急需前端攻城狮,获得内部推荐机会 论坛开通淘帖功能,收藏终于可以分类了!

搜索
查看: 1603|回复: 1

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

[复制链接]
发表于 2008-11-25 11:26:20 | 显示全部楼层 |阅读模式
原文地址:http://www.klstudio.com/post/180.html
我之前写过文章“[AS3]有关Flash无法读取FireFox中的Cookie的Bug ”,关于这个Bug目前有一个变通的解决方法:
  1. /**
  2. * @author Kinglong
  3. * @version 0.1
  4. */

  5. package project.util {
  6.        
  7.         import com.klstudio.util.StringUtil;
  8.         import flash.external.ExternalInterface;
  9.        
  10.         public class UploadUtil{
  11.                
  12.                 public function UploadUtil() {                                               
  13.                 }
  14.                
  15.                 public static function fixNoIEBug(url:String):String {
  16.                         var index:uint = url.indexOf("?");
  17.                         url += (index == -1)?"?ie=":"&ie=";
  18.                         url += (isIE())?"1":"0" + getCookies();       
  19.                         return url;
  20.                 }
  21.                        
  22.                 public static function isIE():Boolean {                       
  23.                         if (!ExternalInterface.available) {
  24.                                 return true;
  25.                         }
  26.                         return ExternalInterface.call("navigator.appVersion.indexOf","MSIE") != -1;
  27.                 }
  28.                
  29.                 public static function getCookies():String {
  30.                         if (!ExternalInterface.available) {
  31.                                 return "&c_userid=&c_password=";
  32.                         }
  33.                         var result:String = "";
  34.                         var cookieStr:String = ExternalInterface.call("function(){return document.cookie;}");
  35.                         var cookies:Array = cookieStr.split(';');
  36.                         var count:uint = 0;
  37.                         for (var i:uint = 0; i < cookies.length; i++ ) {
  38.                                 var items:Array = cookies[i].split('=');
  39.                                 if (StringUtil.trim(items[0]) == "c_userid" || StringUtil.trim(items[0]) == "c_password") {
  40.                                         result += "&" + StringUtil.trim(items[0]) + "=" + StringUtil.trim(items[1]);
  41.                                         count ++;
  42.                                 }
  43.                                 if (count >= 2) {
  44.                                         break;
  45.                                 }
  46.                         }
  47.                         return result;                       
  48.                 }
  49.                
  50.         }
  51.        
  52. }
复制代码

看上面的代码就知道原理很简单,就是先判断是否为IE浏览器,如果是的话,服务端就通过正常的方式来读取Cookie值,否则的话,就通过客户端JS方法把cookie取到,然后再通过url传给服务端。
发表于 2008-11-25 12:18:50 | 显示全部楼层
KingLong总出有用的东西。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|Archiver|手机版|blueidea.com ( ICP05002321 )  

GMT+8, 2019-5-23 02:57 , Processed in 0.093750 second(s), 8 queries , Gzip On, Memcache On.

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表