хранить и извлекать div в куки, используя jquery - PullRequest
1 голос
/ 16 октября 2011

Хорошо, Поэтому я создаю cookie, используя jquery, и храню в нем div. В этом 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 записей не показано. Предпочтения
необработанное исключение: [Exception ... "Не удалось преобразовать аргумент JavaScript arg 0 [nsIDOMHTMLDivElement.appendChild]" nsresult: "0x80570009 (NS_ERROR_XPC_BAD_CONVERT_JS)" location: "JS frame :: iGo.js :: checkCookies :: 10 нет]

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

1 Ответ

4 голосов
/ 16 октября 2011

В любом случае, хранение полного 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 для каждого уникального имени хоста или домена
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...