【发布时间】:2017-12-06 16:46:25
【问题描述】:
我创建了这段代码来打印 iFrame 中的数据
function (data) {
var frame = $("<iframe>", {
name: "iFrame",
class: "printFrame"
});
frame.appendTo("body");
var head = $("<head></head>");
_.each($("head link[rel=stylesheet]"), function (link) {
var csslink = $("<link/>", { rel: "stylesheet", href: $(link).prop("href") })
head.append(csslink);
;});
frame.contents().find("head")
.replaceWith(head);
frame.contents().find("body")
.append(this.html());
window.frames["iFrame"].focus();
window.frames["iFrame"].print();
}
这将创建一个 iFrame,在其中设置该网站所需的所有 css 链接的位置添加一个头部。然后它创建身体。
麻烦的是,样式不会应用于打印,除非我在 frame.contents().find("head").replaceWith(head) 行中断,这意味着该部分中的某些内容正在异步运行。
问题是,我能否以某种方式让代码在运行该行之前等待片刻,或者是否有其他方法可以做到这一点?不幸的是,我对 iFrame 不是很熟悉,所以我不知道它在那里试图做什么。
【问题讨论】:
-
@SagarSinha 通过链接该页面不确定您想要什么。您能否进一步解释或评论您要引用该线程的哪一部分?
标签: javascript jquery css iframe