2009-10-27 11 views
6

Chcę zapisać wartość href w pliku cookie, problemem jest to, kiedy należy wykonać cookie ucieczki ukośniki, więc na przykładChcę znaków kodów zmiany znaczenia w moim ciasteczka (jQuery)

kod jest

$.cookie ("mycookie", $link.attr("href"), { path: '/', expires: 7 }); 

html jest

<li><a id="czechrepublic" href="/cz/cz.html">Česká republika</a></li>

Kiedy przechowywać href jest on przechowywany jako

%2Fcz%2Fcz.html 

Ale potrzebuję go do przechowywania jako /cz/cz.html czy istnieje sposób na UNescaping znaków w Jquery, widziałem to w standardowych samouczków cookie javascript ale nie jestem pewien, jak to zrobić z Jquery cookies wtyczki

Dzięki

Joe

Odpowiedz

4

Podczas pobierania pliku cookie przez plugin jQuery cookies poprzez $.cookie('mycookie'), zostanie ona automatycznie Unes caped przy użyciu prawidłowej funkcji, która jest decodeURIComponent.

Jeśli chcesz rozszyfrować ciąg na końcu serwera, będziesz musiał użyć funkcji dekodowania adresu URL w dowolnym języku, którego używasz.

Jeśli trzeba mieć niezakodowany ciasteczko ponieważ koniec serwer nie może być zmieniony w użyciu zakodowanych plików cookie, należy zapomnieć plugin jQuery andjust ustawić ciasteczko siebie:

document.cookie= 'mycookie='+$link.attr("href"); 

Dla wartości /cz/cz.html to będzie w porządku, ale istnieje wiele innych znaków, których nie można zapisać w pliku cookie, dlatego jQuery ucieka z nich.

+0

Dzięki, że wykonał sztuczkę teraz –

4

Zastosowanie decodeURIComponent(vartobedecoded.replace(/\+/g, " "));

6
$.cookie.raw = true 
$.cookie('mycookie','/cz/cz.html') 

Od here

+1

Tuż za każdym razie, kto będzie tłumić domyślny ucieczki char. Wywoływany z funkcji $ .cookie.raw nie wyłącza globalnego ucieczki –