Сделать скриншот веб-страницы с JavaScript? - PullRequest
143 голосов
/ 13 сентября 2008

Можно ли сделать снимок экрана веб-страницы с помощью JavaScript, а затем отправить его обратно на сервер?

Меня не очень волнуют проблемы безопасности браузера. и т.д., как реализация будет для HTA . Но возможно ли это?

Ответы [ 12 ]

1 голос
/ 13 сентября 2008

Этого можно добиться с помощью HTA и VBScript . Просто вызовите внешний инструмент, чтобы сделать скриншот. Я забыл, как зовут, но в Windows Vista есть инструмент для создания скриншотов. Вам даже не нужна дополнительная установка для этого.

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

Поскольку вы упомянули HTA, я предполагаю, что вы работаете в Windows и (возможно) очень хорошо знаете вашу среду (например, ОС и версию).

0 голосов
/ 16 ноября 2018

Если вы хотите сделать это на стороне сервера, есть варианты, такие как PhantomJS , который сейчас не рекомендуется. Лучше всего было бы использовать Headless Chrome с чем-то вроде Puppeteer на Node.JS. Захват веб-страницы с помощью Puppeteer будет таким простым:

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://example.com');
  await page.screenshot({path: 'example.png'});

  await browser.close();
})();

Однако для работы на ваших серверах требуется безголовый Chrome, который имеет некоторые зависимости и может не подходить для ограниченных сред. (Кроме того, если вы не используете Node.JS, вам может потребоваться самостоятельно выполнить установку / запуск браузеров.)

Если вы хотите использовать услугу SaaS, есть много вариантов, таких как

...