Javascript. Передать HTML-код как строку

S
На сайте с 20.08.2007
Offline
140
3857

Задача на первый взгляд банальная, но, например, на Тостере ответа я так и не получил.

Javascript ищет элементы на странице и сохраняет их как объекты или как коллекции. Мне же надо найти элемент (<html>) и сохранить (а затем передать) его как строку со всем содержимым.

Это вкратце.

Теперь подробнее, для чего это надо.

Пользователь изменяет элементы на странице: добавляет их, сортирует, перемещает и т.д. Все это происходит в его браузере. Но он хочет сохранить результат. Что надо сделать для этого? Создаем файлик, забираем HTML-содержимое страницу, передаем его в новый файлик. Готово.

Первая часть без проблем - файлик на сервере создан, осталось передать в него данные из браузера пользователя. Аяксом. document - это объект, любой элемент, выбранный по тегу или еще как-то - это объект или коллекция. JSON делит этот объект на свойства и методы, которые мне не нужны. По сути мне нужна строка. То есть надо средствами JS или JQuery получить содержимое страницы со всеми тегами как строку.

Второй день не могу придумать как.

dkameleon
На сайте с 09.12.2005
Offline
386
#1

$('body').html();

Дизайн интерьера (http://balabukha.com/)
S
На сайте с 20.08.2007
Offline
140
#2

Вот теперь мне по-настоящему стыдно... Спасибо.

Ragnarok
На сайте с 25.06.2010
Offline
226
#3

somick, возможно, имеет смысл "оформление" контента выполнять в контейнере, чтобы не подмешивались различные системные элементы. Код для получения такой как предложил dkameleon, только id элемента вместо body

//TODO: перестать откладывать на потом
PM
На сайте с 30.08.2010
Offline
48
#4
somick:
Задача на первый взгляд банальная, но, например, на Тостере ответа я так и не получил.

Javascript ищет элементы на странице и сохраняет их как объекты или как коллекции. Мне же надо найти элемент (<html>) и сохранить (а затем передать) его как строку со всем содержимым.

Это вкратце.

Теперь подробнее, для чего это надо.
Пользователь изменяет элементы на странице: добавляет их, сортирует, перемещает и т.д. Все это происходит в его браузере. Но он хочет сохранить результат. Что надо сделать для этого? Создаем файлик, забираем HTML-содержимое страницу, передаем его в новый файлик. Готово.

Конкретно на Ваш вопрос был получен ответ выше.

Но у меня возникает ощущение что Вы не правильно подошли к задаче. Если у вас добавится функционал - Вы по-прежнему будете показывать пользователю сохраненные страницы?

Рекомендую разбить все на объекты, методы, сохранять все в виде свойств и статусов и напрограммировать, к примеру, на AngularJs.

Удачи!

PN
На сайте с 22.08.2012
Offline
103
#5

я бы не рекомендовал сохранять чистый html. Конструкторы обычно сохраняют типы, идентификаторы, положение блоков, максимум - html-контент блоков, а, сохраняя чистый html, вы не сможете потом редактировать все это при изменении системы. Либо придется вместе с html сохранять еще и JS.

Мой совет помог? Не скупись! Bitcoin 1Lseddet1o1B6odgXQHbGaWGwRkt1Db8Ef Ethereum 0x450f1a17461e25194B7F9226cDEe70173F39e1e1
S
На сайте с 20.08.2007
Offline
140
#6
prog_monster:
Конкретно на Ваш вопрос был получен ответ выше.

Но у меня возникает ощущение что Вы не правильно подошли к задаче. Если у вас добавится функционал - Вы по-прежнему будете показывать пользователю сохраненные страницы?

Рекомендую разбить все на объекты, методы, сохранять все в виде свойств и статусов и напрограммировать, к примеру, на AngularJs.

Удачи!

Спасибо.

Тут в общем-то задача была такая. Изначально необходимо было сделать несколько лендингов. Потом мне пришла мысль, что лендингов надо больше, но "кирпичики", из которых они состоят по сути одинаковые. И я решил сделать такой генератор, преследуя две цели:

1. Освободить себя от работы с человеком, отвечающим за дизайн - пусть сам собирает, без меня.

2. Попрактиковаться.

Может, из этого что-то и вырастит в дальнейшем, может и Angular там применю - давно хочу поближе с этим фреймворком познакомиться, но все не было подходящей задачи.

Но пока все по простому.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий