Сохранение необработанного HTML-кода динамически создаваемой страницы.

StackOverflow https://stackoverflow.com/questions/604303

Вопрос

Я пишу приложение, которое позволит пользователям редактировать календарь, его описание и некоторые другие вещи.Я использую jquery, php и mysql.Каждый раз, когда пользователь вносит изменения, база данных асинхронно обновляется.

Я хотел бы дать им возможность превратить то, что они делают, в PDF-файл.Есть ли способ опубликовать на своем сервере необработанный HTML-код страницы после того, как пользователь внес изменения?

Я мог бы восстановить страницу, используя только php на сервере, но этот способ был бы проще, если это возможно.

Это было полезно?

Решение

Вы можете использовать это, чтобы получить большую часть HTML-кода страницы:

var htmlSource = document.getElementsByTagName('html')[0].innerHTML;

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

Я предполагаю, что вы можете просто использовать тот же AJAX, который уже используете для отправки htmlИсточник на сервер, как только вы его захватите.

Другие советы

Вы, конечно, можете вернуть innerHTML из jQuery любой объект, который вы можете выбрать, хотя это не кажется лучшим способом (альтернативы см. в других ответах).

Берегись XSS-атаки.Если вы просто запускаете HTML туда и обратно, не проверив его предварительно, вы подвергаете себя серьезному риску.

Лучше всего будет восстановить страницу с сервера.Чтобы загрузка была удобной, вам понадобится возможность отправлять заголовки для типа и размера контента.

Чтобы ответить на ваш вопрос, я бы использовал буферизация вывода чтобы записать выходные данные ваших сценариев, а затем использовать один из многих инструментов, доступных для преобразования HTML в PDF.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top