我希望我的用户能够截取网页的截图(或者我定义屏幕截图的大小),然后允许他们将其保存到他们的计算机上。
有没有人知道一个好的JS库,允许你这样做?
我知道浏览器有插件,但我想要一些纯粹的JS,这样用户只需点击一个按钮,然后点击“另存为”链接就会看到他们正在查看的截图。
感谢您的帮助。
/ fmsf
答案 0 :(得分:4)
浏览器不会将允许此内容的API公开给网页,因此无法使用页面中运行的纯JavaScript实现此目的。
实现这一目标的唯一方法是在服务器上准备屏幕抓取,并指向正常的下载链接。
答案 1 :(得分:3)
这不能在JavaScript中完成。在当前文档/域之外拍摄屏幕截图是潜在的安全问题,并且是不可能的。有关更多背景信息,请参阅我关于getting the pixel colour from the current mouse position的问题。
如果您需要将屏幕截图发送到服务器,请查看与您的网站交互的外部应用程序。例如,开源错误跟踪器Mantis具有适用于Windows的屏幕截图应用程序。
如果要在客户端计算机上进行屏幕截图和文件保存,请查看Firefox的Fireshot。它似乎不提供与预定义网站的任何交互功能,但可能是您的用户的正确工具。
答案 2 :(得分:1)
HTML2Canvas(http://html2canvas.hertzen.com/)将呈现的HTML重新创建到画布中。您可以将画布保存为图像。这可以解决问题,虽然它不是100%准确(并且有充分的理由 - 如果可能的话,会在浏览器中打开安全漏洞,请参阅https://stackoverflow.com/a/1936084/1333479)。