开发者

When i close window cookies are destroying in flex

I am using external interface to store cookies in client side of application. Like I have created a cookie in html and i am using those methods in flex using External Interface. I am saving a username in cookie when I re use cookie is displaying, I have deployed in server and i ran like http://localhost/[Path]/index.html.in this html I am embedded swf file and I have saved cookie in html JavaScript, now if I open this url cookie is saving if I open a new window what ever the cookies are a raised and it is loading from start. for cookies saving i am using this code in flex:`package Name{

import flash.external.ExternalInterface; 

/** 
 * The Cookie class provides a simple way to create or access 
 * cookies in the embedding HTML document of the application. 
 *  
 */ 
public class Cookies { 

    /** 
     * Flag if the class was properly initialized. 
     */ 
    private static var _initialized:Boolean = false; 

    /** 
     * Name of the cookie. 
     */ 
    private var _name:String; 

    /** 
     * Contents of the cookie. 
     */ 
    private var _value:String; 

    /** 
     * Flag indicating if a cookie was just created. It is <code>true</code> 
     * when the cookie did not exist before and <code>false</code> otherwise. 
     */ 
    private var _isNew:Boolean; 

    /** 
     * Name of the external javascript function used for getting 
     * cookie information. 
     */ 
    private static const GET_COOKIE:String = "cookieGetCookie"; 

    /** 
     * Name of the external javascript function used for setting 
     * cookie information. 
     */ 
    private static const SET_COOKIE:String = "cookieSetCookie"; 

    /** 
     * Javascript code to define the GET_COOKIE function. 
     */ 
    private static var FUNCTION_GET_COOKIE:String = 
            "function () { " + 
                    "if (document." + GET_COOKIE + " == null) {" + 
                            GET_COOKIE + " = function (name) { " +  
                                    "if (document.cookie) {" +  
                                            "cookies = document.cookie.split('; ');" +  
                                            "for (i = 0; i < cookies.length; i++) {" +  
                                                    "param = cookies[i].split('=', 2);" +  
                                                    "if (decodeURIComponent(param[0]) == name) {" +  
                                                            "value = decodeURIComponent(param[1]);" +  
                                                            "return value;" +  
                                                    "}" +  
                                            "}" +  
                                    "}" +  
                                    "return null;" +  
                            "};" + 
                    "}" + 
            "}"; 

    /** 
     * Javascript code to define the SET_COOKIE function. 
     */ 
    private static var FUNCTION_SET_COOKIE:String = 
            "function () { " + 
                    "if (document." + SET_COOKIE + " == null) {" + 
                            SET_COOKIE + " = function (name, value) { " +  
                                    "document.cookie = name + '=' + value;" +  
                            "};" + 
                    "}" + 
            "}"; 

    /** 
     * Initializes the class by injecting javascript code into 
     * the embedding document. If the class was already initialized 
     * before, this method does nothing. 
     */ 
    private static function initialize():void { 
            if (Cookies._initialized) { 
                    return; 
            } 

            if (!ExternalInterface.available) { 
                    throw new Error("ExternalInterface is not available in this container. Internet Explorer ActiveX, Firefox, Mozilla 1.7.5 and greater, or other browsers that support NPRuntime are required."); 
            } 

            // Add functions to DOM if they aren't already there 
            ExternalInterface.call(FUNCTION_GET_COOKIE); 
            ExternalInterface.call(FUNCTION_SET_COOKIE); 

            Cookies._initialized = true; 
    } 

    /** 
     * Creates a new Cookie object. If a cookie with the specified 
     * name already exists, the existing value is used. Otherwise 
     * a new cookie is created as soon as a value is assigned to it. 
     *  
     * @param name The name of the cookie 
     */ 
    public function Cookies(name:String) { 
            Cookies.initialize(); 

            this._name = name; 
            this._value = ExternalInterface.call(GET_COOKIE, name) as String; 

            this._isNew = this._value == null; 
    } 

    /** 
     * The name of the cookie. 
     */ 
    public function get name():String { 
           开发者_如何学JAVA return this._name; 
    } 

    /** 
     * The value of the cookie. If it is a new cookie, it is not 
     * made persistent until a value is assigned to it. 
     */ 
    public function get value():String { 
            return this._value; 
    } 

    /** 
     * @private 
     */ 
    public function set value(value:String):void { 
            this._value = value; 

            ExternalInterface.call(SET_COOKIE, this._name, this._value); 
    } 

    /** 
     * The <code>isNew</code> property indicates if the cookie 
     * already exists or not. 
     */ 
    public function get isNew():Boolean { 
            return this._isNew; 
    } 
} 

}

I am using cookie like this var anotherCookie:Cookies = new Cookies("username"); anotherCookie.value=[Textinput].text;.is there any code i need to use save cookie in new window also? Please help me Thanks in Advance.


By default browsers will delete cookies at the end of the current session, e.g. when they close the browser. You can set an "expires" date to some far future date in order for it to stick around for a while. Note that if they have certain types of anti-virus programs it might delete the cookie as well.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜