我正在开发一个MVC C#应用程序,其中div的内容由一个AJAX调用组成,该调用检索数据库字段并作为成功消息返回给JavaScript。字符串(一个简单的示例):
"<div style='background:yellow'>asdf<img src='myfile.jpg'></div>"然后用下列文字印刷:
function printDivContents(contents) {
var printContents = contents;
var originalContents = document.body.innerHTML;
document.body.innerHTML = "<div style='margin:10px'>" + printContents + "</div>";
window.print();
document.body.innerHTML = originalContents;
}在大多数情况下,所有的东西都打印得很完美,但是里面有一个图像,只有在以前加载过的情况下才能打印出来。我希望它能永远打印出来。我已经尝试向内容字符串添加预加载脚本。我只能使用纯JavaScript,而不是jQuery,而且所有的CSS都必须是内联的。我有什么选择来加载图像?我应该暂停执行以等待DOM加载,将图像指定为调用页面上的隐藏div背景,还是.?
发布于 2015-08-07 17:54:14
在进行初始AJAX调用的页面上,创建一个隐藏的div,如下所示:
<div style="display:none; background:url('myfile.jpg')"></div>如果文件被动态更改,则在打印之前更改div的背景。
发布于 2015-08-07 17:54:40
如果您仍然希望能够动态更改映像,那么我遇到了非常类似的问题,并且发现等待映像加载非常有效:
var image = Image();
image.onload(function () {
//print the screen, or do whatever
});
image.src = "whateverImgSrc";https://stackoverflow.com/questions/31883610
复制相似问题