#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 на уникальный хост или доменное имя