@Kirill-Gorelov
С ума с IT

Замена iframe на js?

Парни, хочу сделать скриншотер страниц сайта(попрактиковаться хочу).
Сам скриншотер реализую через html2canvas. А вот страницу как подгрузить не знаю.
Когда использую iframe, то на скриншоте ничего не отображается. Я пробовал и саму страницу скринить и отдельные блоки. Содержимое Iframe никак не отображается.
Как мне можно сделать так, что содержимое стороннего сайта попало в скриншот?
То есть как мне загрузить сторонний сайт к себе на страницу и заскриншотить его?
  • Вопрос задан
  • 457 просмотров
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
Попробуйте сохранять вид сайта в картинку через PhantomJS – по ссылке пример, как сохранить главную страницу github в файл png.

Нужно скачать PhantomJS, создать js-файл с 5 строчками из примера, и запустить из командной строки примерно так: phantomjs github.js

PhantomJS – это не JS-библиотека, это Webkit браузер, управляемый через JavaScript API. Как заметил hOtRush Google также анонсировал «безголовую» версию своего браузерного движка Chromium, в связи с чем проект PhantomJS может потерять актуальность. Тем не менее, пока он вполне рабочий, и обновляется сообществом разработчиков (последний коммит на сегодня – двухмесячной давности, от 25 июня 2017).

Вы можете установить PhantomJS на своем сервере и вызывать его через exec() из php-скрипта, принимающего URL сайта, который надо перевести в картинку. Это самый простой вариант. Минус – в том, что PhantomJS жрёт много памяти, и если несколько посетителей запросят одновременно несколько заданий, памяти на всех может не хватить. В таком случае организуйте асинхронную очередь задач. Поступающие запросы с URL ставьте в очередь, которая последовательно обрабатывается всего одним процессом phantomjs. По мере готовности, заказчики смогут забрать готовые картинки сайтов.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы