Хороший JS lib, чтобы сделать скриншот экрана - PullRequest
1 голос
/ 14 мая 2010

Я хочу, чтобы мои пользователи могли сделать снимок экрана с веб-страницей (или определить размер снимка экрана), а затем позволить им сохранить его на своем компьютере.

Кто-нибудь знает хорошую библиотеку JS, которая позволяет вам это делать?

Я знаю, что есть дополнения для браузера, но я хотел что-то чисто JS, чтобы пользователь мог просто щелкнуть по кнопке, и появилась ссылка «Сохранить как» со скриншотом того, на что они смотрят.

Спасибо за помощь.

/ fmsf

Ответы [ 3 ]

4 голосов
/ 14 мая 2010

Браузеры не предоставляют API-интерфейсы, которые позволяют это делать веб-страницам, поэтому нет никакого способа добиться этого с помощью простого JavaScript, работающего на странице.

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

3 голосов
/ 14 мая 2010

Это не может быть сделано в JavaScript.Снимки экрана за пределами текущего документа / домена являются потенциальной проблемой безопасности и невозможны.См. Мой вопрос о получении цвета пикселя от текущей позиции мыши для получения дополнительной информации.

Если вам нужно передать снимки экрана на сервер, посмотрите внешние приложения, которые взаимодействуют с вашим веб-сайтом.сайт.Например, средство отслеживания ошибок с открытым исходным кодом Mantis имеет приложение для создания снимков экрана для Windows.

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

1 голос
/ 09 апреля 2014

HTML2Canvas (http://html2canvas.hertzen.com/) воссоздает визуализированный HTML-код в холст. И вы можете сохранить холст как изображение. Это может помочь, хотя это не на 100% точно (и по уважительным причинам - это откроетдыры в безопасности в браузерах, если это было возможно, см. https://stackoverflow.com/a/1936084/1333479).

...