|
как "достать" все объекты документа
все элементы хтмл-документа можно создавать яваскриптом
а как сохранить все элементы-узлы объекта document со всеми ид классами и тд например для повторного создания всех этих узлов |
element.cloneNode() |
я имел в виду не копирование и вставку
а экспорт например в json всех хэлементов dom и импорта из json для воссоздания dom |
Не выйдет так просто -после перекидки объект -ясон-объект , объект уже не будет иметь тип htmlElement. Нужно писать парсер элемент-ясон-элемент. Можно обойтись без парсера элемент-ясон конечно а сделать через стандартный перевод в ясон.
|
парсер чтобы сохранял нужные важные для тебя параметры элемента и записывал ил в ясон(ну и транскрипция) , и наоборот.
ну еще как вариант похранить element.innerHTML сроку)) но не факт что сохранятся и обработчики |
сохранить во фрагменте, потом вставить
<head>
<script>
window.onload = function () {
function createTree(el, par) {
var ul = document.createElement('ul');
par.appendChild(ul);
var childs = el.children;
var len = childs.length;
for (var i = 0; i < len; i++) {
var li = document.createElement('li');
li.innerHTML = childs[i].tagName;
ul.appendChild(li);
createTree(childs[i], ul);
}
}
var frag = document.createDocumentFragment();
createTree(document.body, frag);
document.body.appendChild(frag);
}
</script>
</head>
<body>
<div>
<div>
<span>span</span>
<button>button1</button>
<input>
</div>
<div>
<form>
<input>
<input>
<span>span2</span>
<button>button2</button>
</form>
</div>
</div>
<div>
<div>
<span>span</span>
<button>button1</button>
<input>
</div>
<div>
<form>
<input>
<input>
<span>span2</span>
<button>button2</button>
</form>
</div>
</div>
</body>
|
мужики, вопрос концептуальный - все узлы DOM это элементы объекта document
это обычный объект со свойствами можно добавлять эти свойства как в обычный объект JS соответственно должен быть простой способ сохранения этого объекта со всеми его свойствами, например сохраниения на клиенте или в БД на сервере - самое логичное конечно же JSON причем без всяких конвертаций же |
Цитата:
var div=document.createElement('div');
alert( div);
div=JSON.parse(JSON.stringify(div));
alert( div);
var a={};
alert(a);
что не понятного ?самый простой способ: кинуть в ясон. затем перевести назад. создать узел(тип тега можно получить из свойств распарсеного) переписать ему все свойства из из распарсеного, перечислением. -но если необходим ещё и минимальный ясон ,то и для первого пункта нужен парсер |
Вопрос, зачем вообще понадобились такие извращения?
Проблема стоит не в том как распарсить DOM а гораздо ранее на этапе когда такая потребность ВООБЩЕ ПОЯВИЛАСЬ у тебя |
это простите не извращения - это я грызу гранит и пытаюсь понять логику
повторюсь ибо ответы ваши не об том чо я спрашиваю - правильно ли я понимаю что хтмл-документ это объекты DOM и следовательно объекты JS-программы и возможно полностью прочитать все элементы объекта document в виде пар ключ-значение и сохранить эти данные, и обратно прочитать эти данные и воссоздать первоначальный документ вопрос наверное к профессорам типа автора учебника этого сайта)) |
| Часовой пояс GMT +3, время: 01:46. |
|