javascript - 浏览器上的 Web 控制所需的打印屏幕功能

标签 javascript asp.net html bing-maps

全部,

我需要让我们网页的用户能够下载我们放在森林火灾模拟 dot net aspx 网页上的 Bing map 的 jpeg 图像。目前,该页面显示了 Bing map 以及多达 96 个形状,最多可能需要 20 秒才能完全加载。如果有帮助的话,我可以将所有这些形状放在一层上 - 但我不确定是否会这样,我想我会先在这里问。

显然,任何“复杂”的客户端操作(例如 ALT-打印屏幕、从网页打印、mwsnap3 或其他第三方解决方案)都不够,所以我被告知在页面上实现一个按钮,该按钮将当在页面上按下时,下载(或提供)jpeg 图像文档/图像。

我从一个很棒的线程开始:Convert webpage to image from ASP.NET 。 ,这非常接近我想要的,但是页面在 browser.ReadyState != WebBrowserReadyState.Complete 上呈现,该过渡在我的形状加载到 Bing Canvas 上之前触发。我尝试在 DocumentTitleChanged 事件上渲染页面(然后在我的形状完成加载时尝试更改标题),但这也不起作用。

我尝试使用 javascript 强制使用“打印屏幕”字符(请参阅 Is it possible to simulate key press events programmatically? ),但这会转换为逗号(十进制 44),并且无法按预期工作。

我还看到 HTLM5 对此有一些支持 ( http://www.nihilogic.dk/labs/canvas2image ),但是虽然这在 FireFox 中有效,但在 IE 中不起作用,而 IE 是首选浏览器。我还想在移动设备上运行它,该设备可能在一段时间内也不支持 HTML5。

我有几个问题:

1 - 是否有另一种(简单)方法来打印我缺少的网页内容?

2 - 是否有其他一些我可以触发的 WebBrowser 事件会更有意义)?

3 - 如果我使用其他一些控件进行说明,然后将 map 和形状放在该控件上以供后续打印,会有帮助吗?

4 - 这是否违背了网页浏览的原则,是一个坏主意(似乎如果我可以强制“打印屏幕”,那么邪恶的网站就可以强制使用 Ctrl-Alt-Delete 按钮序列)?

谢谢 - 史蒂夫

最佳答案

这可能不是您想要做的方法,因为它需要您以不同的方式重复您已经拥有的许多功能,但唯一真正完整的证明方法是从以下位置获取 map 作为图像bing map 静态图像服务并使用 GDI+ 自己在 map 上绘制,然后直接将该图像提供给用户。解决任何浏览器问题,但根据您的要求需要进行大量工作:

http://rbrundritt.wordpress.com/2009/02/22/drawing-routes-with-the-ve-web-service/

关于javascript - 浏览器上的 Web 控制所需的打印屏幕功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9520398/

相关文章:

java - 点击按钮不起作用

html - 为什么单击的项目没有在下拉列表中被选中,而是始终显示标题文本

html - 根据屏幕尺寸使用不同的图像以提高性能/加载时间? (网页设计)

JavaScript 编码标准

javascript - 如何扫描阵列并绘制水平仪?

c# - 使用c#导入json数据

c# - 如何在后面的代码中使文本框只读属性为 false?

javascript - 有没有办法在函数中注入(inject) try catch ?

javascript - 通过 jQuery 仅传递选定的复选框和属性输入文本框?

c# - 是否可以将多个数据保存到数据库列