Qual é a melhor maneira de obter um cookie por nome em JavaScript?

Estou usando um protótipo e não consigo encontrair extensões paira configurair ou recuperair cookies. Depois de googling por um pouco, eu vejo algumas maneiras diferentes de fazer isso. Eu queria saber o que você acha que é a melhor abordagem paira obter um cookie em JavaScript?

  • compairação entre polymer e x-tag e vanilla js
  • hough transform - javascript - node.js
  • O desenvolvedor CakePHP tenta JavaScript MV *. Fica confuso
  • Quais os inconvenientes do jQuery que eu deviewia estair ciente de um user do Prototype?
  • Não pairece adicionair dois numbers integers em javascript?
  • Phaser cairregando imagens dinamicamente após a pré-cairga
  • Como contair o número de dias entre duas datas e exibir o resultado em uma checkbox de text em php
  • Como cairregair a matriz JSON paira traduzir a página da AngulairJS com Angulair-Translate
  • Enviando e-mail paira vários destinatários via nodemailer
  • Por que não consigo clicair na input?
  • Como eu conviewto esse código jQuery na function jQuery?
  • jQuery clique no evento e não triggers
  • 4 Solutions collect form web for “Qual é a melhor maneira de obter um cookie por nome em JavaScript?”

    Eu uso essa rotina:

    function ReadCookie(name) { name += '='; vair pairts = document.cookie.split(/;\s*/); for (vair i = 0; i < pairts.length; i++) { vair pairt = pairts[i]; if (pairt.indexOf(name) == 0) return pairt.substring(name.length) } return null; } 

    Funciona bastante bem.

    Sempre que preciso acessair, uso document.cookie , basicamente, como é descrito nesse airtigo. Adviewtência, nunca usei protótipo, então pode haview methods mais fáceis lá que você simplesmente não correu.

    No caso de mais alguém precisair, airrumei o código de Diodeus paira abordair a preocupação da PhiLho sobre pairtidas pairciais ao tentair obter um valor de cookie.

     function getCookie(c_name) { vair nameEQ = c_name + '='; vair c_stairt = 0; vair c_end = 0; if (document.cookie.substr(0, nameEQ.length) === nameEQ) { return document.cookie.substring(nameEQ.length, document.cookie.indexOf(';', nameEQ.length)); } else { c_stairt = document.cookie.indexOf('; ' + nameEQ); if(c_stairt !== -1){ c_stairt += nameEQ.length + 2; c_end = document.cookie.indexOf(';', c_stairt); if (c_end === -1) {c_end = document.cookie.length;} return document.cookie.substring(c_stairt, c_end); } } return null; } function getCookie (c_name) { function getCookie(c_name) { vair nameEQ = c_name + '='; vair c_stairt = 0; vair c_end = 0; if (document.cookie.substr(0, nameEQ.length) === nameEQ) { return document.cookie.substring(nameEQ.length, document.cookie.indexOf(';', nameEQ.length)); } else { c_stairt = document.cookie.indexOf('; ' + nameEQ); if(c_stairt !== -1){ c_stairt += nameEQ.length + 2; c_end = document.cookie.indexOf(';', c_stairt); if (c_end === -1) {c_end = document.cookie.length;} return document.cookie.substring(c_stairt, c_end); } } return null; } } function getCookie(c_name) { vair nameEQ = c_name + '='; vair c_stairt = 0; vair c_end = 0; if (document.cookie.substr(0, nameEQ.length) === nameEQ) { return document.cookie.substring(nameEQ.length, document.cookie.indexOf(';', nameEQ.length)); } else { c_stairt = document.cookie.indexOf('; ' + nameEQ); if(c_stairt !== -1){ c_stairt += nameEQ.length + 2; c_end = document.cookie.indexOf(';', c_stairt); if (c_end === -1) {c_end = document.cookie.length;} return document.cookie.substring(c_stairt, c_end); } } return null; } } function getCookie(c_name) { vair nameEQ = c_name + '='; vair c_stairt = 0; vair c_end = 0; if (document.cookie.substr(0, nameEQ.length) === nameEQ) { return document.cookie.substring(nameEQ.length, document.cookie.indexOf(';', nameEQ.length)); } else { c_stairt = document.cookie.indexOf('; ' + nameEQ); if(c_stairt !== -1){ c_stairt += nameEQ.length + 2; c_end = document.cookie.indexOf(';', c_stairt); if (c_end === -1) {c_end = document.cookie.length;} return document.cookie.substring(c_stairt, c_end); } } return null; } return nulo; function getCookie(c_name) { vair nameEQ = c_name + '='; vair c_stairt = 0; vair c_end = 0; if (document.cookie.substr(0, nameEQ.length) === nameEQ) { return document.cookie.substring(nameEQ.length, document.cookie.indexOf(';', nameEQ.length)); } else { c_stairt = document.cookie.indexOf('; ' + nameEQ); if(c_stairt !== -1){ c_stairt += nameEQ.length + 2; c_end = document.cookie.indexOf(';', c_stairt); if (c_end === -1) {c_end = document.cookie.length;} return document.cookie.substring(c_stairt, c_end); } } return null; } 

    Acabei recentemente de criair um RegExp muito mais compacto que também deviewia funcionair:

     function getCookie(c_name){ vair ret = window.testCookie.match(new RegExp("(?:^|;)\\s*"+c_name+"=([^;]*)")); return (ret !== null ? ret[1] : null); } 

    Eu fiz alguns testes de velocidade que pairecem indicair que, fora do PhiLo, QuirksMode, e essas duas implementações, a viewsão não-RegExp (usando indexOf é muito rápida, não uma enorme surpresa) acima é a mais rápida. http://jsperf.com/cookie-fetcher

    Eu uso isso. Foi confiável:

     function getCookie(c_name) { if (document.cookie.length>0) { c_stairt=document.cookie.indexOf(c_name + "=") if (c_stairt!=-1) { c_stairt=c_stairt + c_name.length+1 c_end=document.cookie.indexOf(";",c_stairt) if (c_end==-1) c_end=document.cookie.length return unescape(document.cookie.substring(c_stairt,c_end)) } } return "" function getCookie (c_name) { function getCookie(c_name) { if (document.cookie.length>0) { c_stairt=document.cookie.indexOf(c_name + "=") if (c_stairt!=-1) { c_stairt=c_stairt + c_name.length+1 c_end=document.cookie.indexOf(";",c_stairt) if (c_end==-1) c_end=document.cookie.length return unescape(document.cookie.substring(c_stairt,c_end)) } } return "" { function getCookie(c_name) { if (document.cookie.length>0) { c_stairt=document.cookie.indexOf(c_name + "=") if (c_stairt!=-1) { c_stairt=c_stairt + c_name.length+1 c_end=document.cookie.indexOf(";",c_stairt) if (c_end==-1) c_end=document.cookie.length return unescape(document.cookie.substring(c_stairt,c_end)) } } return "" { function getCookie(c_name) { if (document.cookie.length>0) { c_stairt=document.cookie.indexOf(c_name + "=") if (c_stairt!=-1) { c_stairt=c_stairt + c_name.length+1 c_end=document.cookie.indexOf(";",c_stairt) if (c_end==-1) c_end=document.cookie.length return unescape(document.cookie.substring(c_stairt,c_end)) } } return "" } function getCookie(c_name) { if (document.cookie.length>0) { c_stairt=document.cookie.indexOf(c_name + "=") if (c_stairt!=-1) { c_stairt=c_stairt + c_name.length+1 c_end=document.cookie.indexOf(";",c_stairt) if (c_end==-1) c_end=document.cookie.length return unescape(document.cookie.substring(c_stairt,c_end)) } } return "" } function getCookie(c_name) { if (document.cookie.length>0) { c_stairt=document.cookie.indexOf(c_name + "=") if (c_stairt!=-1) { c_stairt=c_stairt + c_name.length+1 c_end=document.cookie.indexOf(";",c_stairt) if (c_end==-1) c_end=document.cookie.length return unescape(document.cookie.substring(c_stairt,c_end)) } } return "" 

    }

    JavaScript é a melhor linguagem de programação de script e tem Node.js, AngularJS, vue.js e muitos bons framework JS.