Как создать образ веб-сайта с помощью js?

#javascript #browser #screenshot #webpage-screenshot

#javascript #браузер #скриншот #веб-страница-скриншот

Вопрос:

Могу ли я «конвертировать» веб-сайт в формат JPG или GIF? Я имею в виду, возможно ли просматривать веб-сайт как изображение? (очевидно, без анимации) только статическое изображение, подобное фотографии веб-сайта, которую пользователь видит в браузере…

Спасибо!

Комментарии:

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

2. экран страницы, которую видит пользователь. Похоже на snopshot.

Ответ №1:

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

Комментарии:

1. Я бы не сказал, что это невозможно, но вы правы в том, что сайт будет выглядеть кардинально иначе в зависимости от того, как сервер решит его отобразить….

2. Ну, конечно, это возможно, но он спросил, как это сделать с помощью javascript, что невозможно. И, как я уже сказал, выполнение этого на стороне сервера возможно, но потребует слишком много тяжелой работы.

3. Мне нужен только экран, подобный скриншоту страницы, которую пользователь видит в браузере…

4. Да, это было ясно понято, и я дал вам ответ на этот вопрос, попробуйте перечитать его, чтобы понять, что это требует МНОГО тяжелой работы и должно выполняться на стороне сервера. Попробуйте рассказать нам, какова цель этого, и, возможно, мы смогли бы предложить вам лучшее решение.

5. Dail — нет, они записывают ваше положение мыши. Совершенно другое. ЕДИНСТВЕННЫЙ способ сделать скриншот на стороне клиента — это использовать плагин для браузера. Таких существует несколько, Google твой друг 🙂

Ответ №2:

Firefox добавил нечто подобное в свою реализацию canvas. Вы можете найти CanvasRenderingContext2D.drawWindow() документацию в их wiki. Он ограничен использованием плагинов в целях безопасности и не поддерживается никакими другими браузерами.

Ведутся разговоры о добавлении поддержки в другие браузеры и, возможно, снятии некоторых ограничений безопасности, но до этого, вероятно, еще далеко. На данный момент не существует хорошего JavaScript-решения вашей проблемы.

Комментарии:

1. Вы не можете использовать это на странице, только в плагине.

2. Верно, но в любом случае это единственный возможный способ «создать образ веб-сайта на js».