сохраняйте и извлекайте div в файлах cookie с помощью jquery

#jquery #cookies #html

#jquery #файлы cookie #HTML

Вопрос:

Хорошо, итак, я создаю cookie с помощью jquery и сохраняю в нем div. В этом div много форматирования, других разделов, текста и т.д.

 var rentContainer = document.createElement('div');
rentContainer.setAttribute("class","module");
var carContainer = document.createElement('div');
carContainer.setAttribute("class","carRentContainer");
rentContainer.appendChild(carContainer);
.... and a lot of other things go in this rentContainer div
  

Теперь сохраните его в cookie

 $.cookie('rented_car', rentContainer);
  

на данный момент все выглядит нормально.

когда страница обновлена и тело загружено, пришло время получить этот div и отобразить его на странице (с тем же форматированием, структурой и т.д.).

итак, в моей функции у меня есть

 var rented_car_cookie = $.cookie("rented_car");
if(rented_car_cookie){
    document.getElementById('rentit').appendChild(rented_car_cookie);
    //rentit is already defined and exists on the page. All I need is to add the cookie div content on it.
  

но это выдает мне сообщение об ошибке

Достигнут предел журнала Firebug. 0 записей не показаны. Настройки
неперехваченное исключение: [Исключение… «Не удалось преобразовать аргумент JavaScript arg 0 [nsIDOMHTMLDivElement.appendChild]» nsresult: «0x80570009 (NS_ERROR_XPC_BAD_CONVERT_JS)» местоположение: «JS frame :: iGo.js :: checkCookies :: строка 10 » данные: нет]

Пожалуйста, помогите. Каков наилучший способ сделать это?

Ответ №1:

В любом случае, хранение полного html-элемента в cookie-файлах — это плохо. Может быть, лучше использовать JSON.

В любом случае вы можете попытаться сохранить div как html-строку в файле cookie.

 // set
$.cookie("rented_car", $(rentContainer).html())

// get
var content = $.cookie("rented_car");
var $rentContainer = $('<div class="module">'   content   '</div>');
  

Код:http://jsfiddle.net/yecf8 /

Но вам нужно знать, что для разных браузеров существует множество различных ограничений в отношении файлов cookie. Например:

Microsoft Internet Explorer соответствует следующим минимальным ограничениям, рекомендованным RFC 2109:

  • не менее 300 файлов cookie
  • не менее 4096 байт на файл cookie (измеряется размером символов, составляющих нетерминальный файл cookie в описании синтаксиса заголовка Set-Cookie).
  • не менее 20 файлов cookie на уникальный хост или доменное имя