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

Javascript 如何拍摄网页的屏幕截图?,javascript,screen,capture,Javascript,Screen,Capture,我想在我们的一个网站上添加一个按钮,允许用户向我们的bug跟踪系统提交bug 其中一个功能要求是发送相关页面的屏幕帽 如果不在最终用户计算机上安装某些东西,我如何才能做到这一点?javascript有某种屏幕cap api吗?没有,javascript没有类似的api 恐怕这会很困难。我无法想象,如果不在用户计算机上安装,任何东西都能做到这一点 我希望被证明是错的,但至少这是你的答案。请参阅。基本上,不,不使用javascript。也许是ActiveX,但这又回到了在客户端PC上安装东西的问题上

我想在我们的一个网站上添加一个按钮,允许用户向我们的bug跟踪系统提交bug

其中一个功能要求是发送相关页面的屏幕帽


如果不在最终用户计算机上安装某些东西,我如何才能做到这一点?javascript有某种屏幕cap api吗?

没有,javascript没有类似的api

恐怕这会很困难。我无法想象,如果不在用户计算机上安装,任何东西都能做到这一点

我希望被证明是错的,但至少这是你的答案。

请参阅。基本上,不,不使用javascript。也许是ActiveX,但这又回到了在客户端PC上安装东西的问题上


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

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

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

您可以考虑使用基于web的解决方案,例如在或提供的解决方案。根据您的需要,例如页面特定区域的屏幕截图,或外部世界无法访问的页面,它可能不适合您,但这是一个想法。

我同意其他答案——没有骰子


但是,有一个firefox插件,它可能是值得研究的相关任务。

看看(用jQuery+jCrop插件实现)

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

我肯定错过了一些东西,但你就不能


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

使用jQuery获取尽可能多的用户环境信息。(jQuery.support)/user-agent/cookies/form-input-values,url(用于获取参数并了解哪个页面有错误)

发送Moff提到的页面来源。 尝试按现在的方式序列化DOM,以便可以比较与原始页面的不同之处

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

Chrome plugin

您还可以看看Evernote是如何进行屏幕捕获的,也许您可以与之结合,或者创建自己的chrome扩展

检查这里的答案,看看是否有任何工作为你:类似的问题与更多的最新答案:不幸的是,我不得不同意。如果不在用户的计算机上安装某些内容,则无法获取映像。你可以发送准确的html或用户正在查看,但如果你做了大量的DOM操作,即使这样也可能过时。更不用说你必须保存所有外部CSS和JS(如果有的话)才能重新创建页面。然后,你必须确保它们保存在相同的相对路径中,除非你想操作HTML。这不完全是一个屏幕截图,但从某种意义上说,它更好。您不仅可以看到页面的外观,还可以看到用户查看页面时页面的状态。但是,请注意,如果用户的特定浏览器(或者更糟糕的是,他们的浏览器配置)是问题的根源,则在您能够重新创建用户环境之前,您将无法看到问题。此外,如果您在javascript中对DOM进行了更改,它们可能不会像您预期的那样显示出来。DOM更改部分可能会破坏交易。我们在这些页面上做了很多ajax。自从这个问题得到回答以来,我们已经走了很长的路!有了HTML5,现在有了这个功能,它完全可以满足你的需要,发挥出最好的功能,不过仍然处于测试阶段。我不认为这会占用页面的截图。我只是将其包装在iframe中,然后将视图缩减为指定的参数。没有保存任何输入数据,您不会获得任何有用的调试信息。事实上,Alt+PrtScn只会将活动窗口复制到剪贴板,防止复制包含机密信息的周围窗口。这可能在windows计算机上工作,Mac/LINUX/等如何?他们可以这样做,但它不允许我从页面中捕获所有其他我想要的东西。这是一个内部应用程序,所以外出不起作用。好的链接。