【发布时间】:2014-08-29 21:29:14
【问题描述】:
我们的应用程序中有一个打印功能,我们在浏览器中打印图像。我们正在使用所有图像源动态形成 HTML div [图像源来自 web 服务 url]
当我们触发 'Windows.Print()' 时,只有第一张图像始终在打印预览 (chrome) 中可用,其余图像显示为空白。
如果我第二次触发打印事件,所有图像都将被打印,因为所有图像都在那时被缓存。
请告诉我如何在打印前将我的所有图像推送到缓存中。我需要在 javascript 中执行此操作。不想做任何 html 更改。
我正在使用backbone.js 并使用图像创建模型视图。然后在 HTML 中绑定视图。然后我会用它来打印。这在 IE 和 Safari 中运行良好。但不是在 chrome 中,它显示打印预览屏幕并总是试图从浏览器缓存中加载所有图像。但是我在打印时不会在浏览器中看到这些图像。我所有的图像源都是动态的,并且来自服务。我只是将 url 动态设置为图像源。
<%_.each( Documents, function(oDocument) {%>
<div class="images span1">
<img src="<%- oDocument.URL%>" width="98" height="70" />
</div>
<% });%>
在打印预览中,只有一张图像出现,其余图像均以点的形式出现。如果我取消打印并再次打印,一切都会好起来的。
谢谢, 吉维塔
【问题讨论】:
-
如果您提供相应的源代码可能会有用。
-
请求资源(例如,在
<img src>的位置使其无法被看到)将获取资源,并在浏览器喜欢时缓存它。然后可以监视 IMGonload事件以确保资源已被提取并可能被缓存。 -
您是否还需要 Jeevitha 的帮助,或者您的问题现在已经解决了吗?
-
抱歉延迟回复。我仍然有问题。我正在使用backbone.js,需要在我创建模型的函数中缓存图像。我在问题中提供了更多细节。请帮帮我。
标签: javascript printing browser-cache