如何拍摄网页的屏幕截图?

时间:2009-03-31 16:11:20

标签: javascript screen capture

我想在我们的某个网站上添加一个按钮,允许用户通过我们的错误跟踪系统提交错误。

其中一项功能请求是发送相关网页的屏幕上限。

如果没有在最终用户计算机上安装,我该怎么办? javascript是否有某种屏幕上限api?

11 个答案:

答案 0 :(得分:14)

您可以抓取页面的innerHTML,然后在服务器上处理它:

document.getElementsByTagName('html')[0].innerHTML;
// this would also be interactive (i.e. if you've
// modified the DOM, that would be included)

答案 1 :(得分:6)

不,javascript没有这样的内容。

我担心这会很难。如果不在用户计算机上安装,我无法想到任何可以做到的事情。

我想被证明是错的,但至少这对你来说是一个答案。

答案 2 :(得分:6)

使用jQuery获取尽可能多的关于用户环境的信息。 (jQuery.support)/ user agent / cookies / form输入值,url(用于获取参数并知道哪个页面有错误)

发送Moff提到的页面来源。 尝试按原样序列化DOM,以便比较与原始页面不同的内容。

如果您需要将其保留用于历史目的,则发送页面源也很有用,因为当您更新页面时,它将变得不同。

答案 3 :(得分:4)

我建议与 FireShot 进行某种集成,这是一个免费的Firefox / IE插件。

答案 4 :(得分:3)

我同意其他答案 - 没有骰子。

但是,有一个firefox插件,Pearl Crescent Page Saver,可能值得研究相关任务。

答案 5 :(得分:3)

看一下pagecrop(用jQuery + jCrop插件实现)

答案 6 :(得分:3)

我一定错过了什么,但你不能只是......

按键盘上的PrtScr并粘贴到电子邮件中。

答案 7 :(得分:2)

this question。基本上,不,不是用JavaScript。也许使用ActiveX,但这又回到了在客户端PC上安装的东西。

考虑编写一个服务器端脚本,完全重复用户的请求(假设它不是在POST之后)并存储生成的html文件。

答案 8 :(得分:1)

您可以考虑使用基于网络的解决方案,例如Super Screenshot!WebShotsPro.com提供的解决方案。根据您的需要,例如页面特定区域的屏幕截图或外部世界无法访问的页面,它可能对您不起作用,但这是一个想法。

答案 9 :(得分:1)

答案 10 :(得分:0)

您还可以查看Evernote如何进行屏幕捕获,也许您可​​以配合它或创建自己的Chrome扩展程序。 https://chrome.google.com/webstore/detail/evernote-web-clipper/pioclpoplcdbaefihamjohnefbikjilc?hl=en