Prototip kullanıyorum ve kuralı ayarlamak veya almak için yerleşik uzantıları bulamıyorum. Biraz uğraştıktan sonra, bununla ilgili birkaç farklı yol görüyorum. JavaScript'te bir çerez almak için en iyi yaklaşımın ne olduğunu düşündüğünüzü merak ediyordum?JavaScript'te bir ada sahip olmanın en iyi yolu nedir?
cevap
Bunu kullanıyorum. Bu güvenilir olmuştur:
function getCookie(c_name) {
if (document.cookie.length>0)
{
c_start=document.cookie.indexOf(c_name + "=")
if (c_start!=-1)
{
c_start=c_start + c_name.length+1
c_end=document.cookie.indexOf(";",c_start)
if (c_end==-1) c_end=document.cookie.length
return unescape(document.cookie.substring(c_start,c_end))
}
}
return ""
}
Herzaman ben o makalede özetlenen oluyor temelde nasıl ben document.cookie kullanmak, erişmek gerekir. Caveat, Ben asla prototip kullanmamıştım, o yüzden burada hiç rastlamadığınız daha kolay yöntemler olabilir.
function ReadCookie(name)
{
name += '=';
var parts = document.cookie.split(/;\s*/);
for (var i = 0; i < parts.length; i++)
{
var part = parts[i];
if (part.indexOf(name) == 0)
return part.substring(name.length)
}
return null;
}
oldukça iyi çalışır:
Bu rutin kullanın.
Başka birinin buna ihtiyacı varsa, bir çerez değeri almaya çalışırken kısmi eşlemeler hakkında PhiLho's concern adresine adresleme yapmak için düzeltdim.
function getCookie(c_name) {
var nameEQ = c_name + '=';
var c_start = 0;
var c_end = 0;
if (document.cookie.substr(0, nameEQ.length) === nameEQ) {
return document.cookie.substring(nameEQ.length, document.cookie.indexOf(';', nameEQ.length));
} else {
c_start = document.cookie.indexOf('; ' + nameEQ);
if(c_start !== -1){
c_start += nameEQ.length + 2;
c_end = document.cookie.indexOf(';', c_start);
if (c_end === -1) {c_end = document.cookie.length;}
return document.cookie.substring(c_start, c_end);
}
}
return null;
}
Geçenlerde aynı zamanda çalışması gerektiğini çok daha kompakt bir RegExp inşa ettik:
function getCookie(c_name){
var ret = window.testCookie.match(new RegExp("(?:^|;)\\s*"+c_name+"=([^;]*)"));
return (ret !== null ? ret[1] : null);
}
yaptım Philo, QuirksMode dışına olduğunu gösterir gibi görünmektedir bazı hız testleri ve bu iki RegExp olmayan uygulamalar (indexOf kullanarak çok hızlı, büyük bir sürpriz değil) yukarıda en hızlı olanıdır. http://jsperf.com/cookie-fetcher
"c_name" argümanının gittiği yeni fonksiyonunuzda? – ermannob
- 1. Vuejs'te global css'ye sahip olmanın en iyi yolu
- 2. Jmeter'da en iyi yolu bulmanın en iyi yolu nedir?
- 3. Bir animasyonu sürmenin en iyi yolu nedir?
- 4. Django modellerinde özel örnek özniteliklerine sahip olmanın doğru yolu nedir?
- 5. Perl programının yalnızca bir örneğinin çalıştığından emin olmanın en iyi yolu nedir?
- 6. core.clj'yi kurmanın en iyi yolu nedir?
- 7. ClickOnce dağıtımlarının oluşturulmasının en iyi yolu nedir
- 8. Nesneleri kapsayıcılarda paylaşmanın en iyi yolu nedir?
- 9. jQuery eklentisinin jQuery yerel yönteminin üzerine yazılmayacağından emin olmanın en iyi yolu nedir?
- 10. Dosyayı sunucudan indirmenin en iyi yolu nedir
- 11. Kullanıcı bildirimlerini saklamanın en iyi yolu nedir?
- 12. Ember.js'de olayları işlemenin en iyi yolu nedir?
- 13. DateTime'ı çerezlere depolamanın en iyi yolu nedir?
- 14. Javascript yürütme işleminin en iyi yolu nedir?
- 15. php'de uluslararasılaşmanın en iyi yolu nedir?
- 16. Perl'de ekranı temizlemenin en iyi yolu nedir?
- 17. Süreyi saklamanın en iyi yolu nedir? MySQL
- 18. İç ürünleri oluşturmanın en iyi yolu nedir?
- 19. Gözlemlenebilir klonlamanın en iyi yolu nedir?
- 20. Basit sayılar tanımanın en iyi yolu nedir?
- 21. Denemekten kaçınmanın en iyi yolu nedir?
- 22. Python'da benzersiz bir tanıtıcıya sahip olmanın doğru yolu?
- 23. Kitaplığı zenginleştirmeyi en iyi yolu scala'da nedir?
- 24. Python'da HTML işlemenin en iyi yolu nedir?
- 25. en iyi yolu
- 26. Ref türünde bir sınıf üyesine sahip olmanın amacı nedir?
- 27. NSCollectionView uygulamasında farklı görünümlere sahip olmanın bir yolu var mı?
- 28. Git repo'nun kökeni değiştirmenin en iyi yolu nedir?
- 29. aşağıdaki uygulamak için en iyi yolu nedir Model Alan
- 30. Bir resmi clojure'da işlemenin en iyi yolu nedir?
Eğer BEL de arama yapıyorsanız ve REBEL adında bir çerez var, sorun değil. – PhiLho