Заменить весь DOM в JavaScript
Мне нужно реализовать функцию отмены-повтора в моем проекте. Но это очень сложно, и каждое изменение влияет на многие элементы. Я думаю, что сохранение и восстановление всей страницы будет лучшим выбором. Но у меня есть некоторые проблемы с отсутствующими.data() параметрами элементов DOM. Я использую следующие функции:
// save
var documentCopy = document.documentElement.cloneNode(true);
// restore
document.replaceChild(
documentCopy,
document.documentElement
);
Как я могу сохранить и восстановить весь DOM с сохранением jQuery.data() элементов?
1 ответ
Тривиальная вещь, которую я бы попробовал, это использование jQuery's clone
вместо. Обязательно используйте его с двумя true
параметры, но будьте осторожны, так как это может быть очень очень медленно. Вы уверены, что это единственный способ добиться того, чего вы хотите? Вы не можете заменить меньшую часть документа?
Обратите внимание, что это не очень хорошо работает с document.documentElement
и что использовать его с документами body
Кажется, теряются данные об исходных элементах (что сказать?). Вот небольшой тест.