首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带图像打印分区

带图像打印分区
EN

Stack Overflow用户
提问于 2015-08-07 17:37:19
回答 2查看 2.5K关注 0票数 0

我正在开发一个MVC C#应用程序,其中div的内容由一个AJAX调用组成,该调用检索数据库字段并作为成功消息返回给JavaScript。字符串(一个简单的示例):

代码语言:javascript
复制
"<div style='background:yellow'>asdf<img src='myfile.jpg'></div>"

然后用下列文字印刷:

代码语言:javascript
复制
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背景,还是.?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-08-07 17:54:14

在进行初始AJAX调用的页面上,创建一个隐藏的div,如下所示:

代码语言:javascript
复制
<div style="display:none; background:url('myfile.jpg')"></div>

如果文件被动态更改,则在打印之前更改div的背景。

票数 0
EN

Stack Overflow用户

发布于 2015-08-07 17:54:40

如果您仍然希望能够动态更改映像,那么我遇到了非常类似的问题,并且发现等待映像加载非常有效:

代码语言:javascript
复制
var image = Image();
image.onload(function () {
    //print the screen, or do whatever
});
image.src = "whateverImgSrc";
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31883610

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档