572 Stimmen

Cookie nach Name abrufen

Ich habe einen Getter, um den Wert aus einem Cookie zu erhalten.

Jetzt habe ich 2 Kekse mit dem Namen shares= und mit dem Namen obligations= .

Ich möchte, dass dieser Getter nur die Werte aus dem Verpflichtungs-Cookie abruft.

Wie kann ich das tun? Also die for teilt die Daten in einzelne Werte auf und legt sie in einem Array ab.

 function getCookie1() {
    // What do I have to add here to look only in the "obligations=" cookie? 
    // Because now it searches all the cookies.

    var elements = document.cookie.split('=');
    var obligations= elements[1].split('%');
    for (var i = 0; i < obligations.length - 1; i++) {
        var tmp = obligations[i].split('$');
        addProduct1(tmp[0], tmp[1], tmp[2], tmp[3]);
    }
 }

2voto

Ich habe etwas geschrieben, das einfach zu benutzen sein könnte. Wenn jemand etwas hinzufügen möchte, kann er das gerne tun.

function getcookie(name = '') {
    let cookies = document.cookie;
    let cookiestore = {};

    cookies = cookies.split(";");

    if (cookies[0] == "" && cookies[0][0] == undefined) {
        return undefined;
    }

    cookies.forEach(function(cookie) {
        cookie = cookie.split(/=(.+)/);
        if (cookie[0].substr(0, 1) == ' ') {
            cookie[0] = cookie[0].substr(1);
        }
        cookiestore[cookie[0]] = cookie[1];
    });

    return (name !== '' ? cookiestore[name] : cookiestore);
}

Verwendung

getcookie() - gibt ein Objekt mit allen Cookies auf der Webseite zurück.

getcookie('myCookie') - gibt den Wert des Cookies myCookie aus dem Cookie-Objekt zurück, andernfalls ist der Wert undefiniert, wenn der Cookie leer oder nicht gesetzt ist.


Beispiel

// Have some cookies :-)
document.cookie = "myCookies=delicious";
document.cookie = "myComputer=good";
document.cookie = "myBrowser=RAM hungry";

// Read them
console.log( "My cookies are " + getcookie('myCookie') );
// Outputs: My cookies are delicious

console.log( "My computer is " + getcookie('myComputer') );
// Outputs: My computer is good

console.log( "My browser is " + getcookie('myBrowser') );
// Outputs: My browser is RAM hungry

console.log( getcookie() );
// Outputs: {myCookie: "delicious", myComputer: "good", myBrowser: "RAM hungry"}

// (does cookie exist?)
if (getcookie('hidden_cookie')) {
    console.log('Hidden cookie was found!');
} else {
    console.log('Still no cookie :-(');
}

// (do any cookies exist?)
if (getcookie()) {
    console.log("You've got cookies to eat!");
} else {
    console.log('No cookies for today :-(');
}

2voto

Mohit Sharma Punkte 377

Set-Cookie in JS

document.cookie = 'fb-event-id=15648779++';

Cookies nach Name abrufen (Funktion)

function getCookie(name) {
    // Split cookie string and get all individual name=value pairs in an array
    var cookieArr = document.cookie.split(";");
    // Loop through the array elements
    for(var i = 0; i < cookieArr.length; i++) {
        var cookiePair = cookieArr[i].split("=");
        /* Removing whitespace at the beginning of the cookie name
        and compare it with the given string */
        if(name == cookiePair[0].trim()) {
            // Decode the cookie value and return
            return decodeURIComponent(cookiePair[1]);
        }
    } 
    // Return null if not found
    return null;
}

So verwenden Sie die Funktion getCookie

var eventID = getCookie('fb-event-id')

2voto

saydur rahman Punkte 119

Ich habe es auf diese Weise getan. so dass ich ein Objekt zugreifen, um die Werte zu trennen. mit diesem u kann das Cookie an den Elternteil übergeben und dann können Sie Ihre Werte durch die Schlüssel wie zugreifen

var cookies=getCookieVal(mycookie);
alert(cookies.mykey);
function getCookieVal(parent) {
            var cookievalue = $.cookie(parent).split('&');
            var obj = {};
            $.each(cookievalue, function (i, v) {
                var key = v.substr(0, v.indexOf("="));
                var val = v.substr(v.indexOf("=") + 1, v.length);

                obj[key] = val;

            });
            return obj;
        }

2voto

atlefren Punkte 210

Meine Lösung ist diese:

function getCookieValue(cookieName) {
    var ca = document.cookie.split('; ');
    return _.find(ca, function (cookie) {
        return cookie.indexOf(cookieName) === 0;
    });
}

Diese Funktion verwendet die Underscorejs _.find-Funktion. Gibt undefiniert zurück, wenn der Cookie-Name nicht existiert

1voto

Kalpit tandon Punkte 119

Um ein Cookie nach Namen abzurufen, übergeben Sie den Namen des Cookies an die folgende Funktion

function getCookie(cname) {
  var name = cname + "=";
  var decodedCookie = decodeURIComponent(document.cookie);
  var ca = decodedCookie.split(';');
  for(var i = 0; i <ca.length; i++) {
    var c = ca[i];
    while (c.charAt(0) == ' ') {
      c = c.substring(1);
    }
    if (c.indexOf(name) == 0) {
      return c.substring(name.length, c.length);
    }
  }
  return "";
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X