JQuery确保在打印前完全呈现网页

时间:2017-09-26 11:08:35

标签: javascript c# asp.net-mvc

我有一个奇怪的情况,在线系统的6000个用户中的一些用户打印出的文档不完整。

我在网页底部有以下代码。

<script type="text/javascript" defer="defer">
  window.onload = function(){@Html.Raw(ViewBag.StartupScript)};
</script>

和ViewBag.StartupScript只是window.print();

大多数用户都会获得包含所有图片的完整文档。但是少数人得到了所有的文字,但是一个或多个图像都丢失了。

图像位于文档的底部。 图像位于同一个Web服务器上(无cdn)。 出于其他原因,我们必须使用IE或Edge。 我不能在我的工作站复制这个,我总是看到所有的图像。

我唯一能想到的是,在某些情况下,网络或个人电脑很慢,因此尽管有document.ready功能,因此不会接收整个文档进行打印。但是,根据我的理解,window.onload仅在加载了所有图像时触发。

所以,要保持这个问题而不是讨论。 我是否有点误解了window.onload(和defer =&#34; defer&#34;以及它们的使用方式?

是否有其他方法可以保证文档及其所有图像在打印前都已下载。

有没有一种简单的方法可以证明我的工作理论是在加载图像之前执行打印命令?

只是为了浑水摸鱼,似乎PC不起作用的主要是Windows 7,而不是运行IE的Windows 10。我还没有证明这一点,但它可能是OS /浏览器实现中的问题。

要进一步更新(它仍然无法正常工作)。有些图像正在被中止,但是没有一致性。有时它是第一个中止的图像,在该页面上的其他时间,加载相同的图像并中止单独的图像。网络工具中的(中止)。谷歌搜索这个问题意味着它是一个哑剧类型的问题。但是我会期望它拒绝或接受所有法师,而不是偶尔行动。如果他们还在读这个,任何人都会有更多的想法吗? / p>

1 个答案:

答案 0 :(得分:0)

通过设置eventlistener确保内容已满载。

YAML::Node

如果仍然没有解决问题。试试以下。 在调用window.print方法之前检查图像是否已加载。

$(window).on("load", function() {

});