使用ASP.Net,是否有一种编程方式来获取浏览器内容的屏幕截图?
我有一个ASP.Net应用程序,根据需要的功能,用户希望能够采取截图。虽然我知道这是可以模拟的,但如果有办法获取URL(或当前呈现的页面),并将其转换为可以存储在服务器上的图像,那就太好了使用ASP.Net,是否有一种编程方式来获取浏览器内容的屏幕截图?,asp.net,screenshot,Asp.net,Screenshot,我有一个ASP.Net应用程序,根据需要的功能,用户希望能够采取截图。虽然我知道这是可以模拟的,但如果有办法获取URL(或当前呈现的页面),并将其转换为可以存储在服务器上的图像,那就太好了 这疯了吗?有办法吗?如果是这样的话,任何引用?都有XML-RPC接口和可用的源代码(Python)。我现在可以告诉您,在浏览器内部无法执行此操作,也不应该有。假设您的页面将GMail嵌入iframe中。然后你就可以偷一张此人GMail收件箱的截图 通过让浏览器“屏蔽”所有违反跨域限制的iFrame和嵌入,可以
这疯了吗?有办法吗?如果是这样的话,任何引用?都有XML-RPC接口和可用的源代码(Python)。我现在可以告诉您,在浏览器内部无法执行此操作,也不应该有。假设您的页面将GMail嵌入iframe中。然后你就可以偷一张此人GMail收件箱的截图 通过让浏览器“屏蔽”所有违反跨域限制的iFrame和嵌入,可以确保安全 您当然可以编写一个扩展来实现这一点,但要注意上面概述的安全注意事项 更新:您可以使用canvas实用程序功能获取与代码相同来源的页面的屏幕截图。甚至还有一个lib允许您执行此操作:
您可以在此处找到其他可能的答案:您可以尝试Internet Explorer之类的浏览器插件,它允许您将当前站点的屏幕截图保存到磁盘上的文件中。我相信FireFox也有类似的插件。我使用了免费的程序集UrlScreenshot.dll,您可以下载。
很好用
也有,但不是免费的。如果你想做你描述的事情。您需要调用一个外部进程,按照所述打印IE输出。为什么不采取另一种方法 如果您需要用户可以重新查看相同的内容,那么听起来这是应用程序的业务需求,因此您应该将其构建到应用程序中 构造URL,以便当同一用户(假设您有会话,并且应用程序向不同的用户显示不同的内容)访问同一URL时,他们总是看到相同的内容。然后,他们可以在本地为URL添加书签,或者您甚至可以使用应用程序功能将其保存在用户配置文件中 这部分意味着要创建“干净的URL”,例如site.com/view/whatever-information-needed-here 如果您使用的是基于时间的数据,数据会随着时间的推移而变化,那么可能有几种方法
- 如果您的数据没有定期更改,那么您可以始终使用“当前”页面,例如site.com/view/2008-10-20(根据需要添加小时/分钟/秒)李>
- 如果正在刷新和/或更定期地更新,请将“当前”页面设置为site.com/view。。但允许指定之后的确切时间。在这种情况下,您必须有一个“linktothispage”类型的函数,它将链接到带有完整日期/时间的永久URL。从谷歌地图中寻找灵感——如果你在地图上滚动,你总是可以点击“链接到这里”,它将提供一个包含GPS坐标、地图上的对象等的链接。在这种情况下,它不是一个非常友好的url,但它确实工作得很好。:)李>