【发布时间】:2013-12-16 05:26:26
【问题描述】:
我正在研究用于打印 IFrame 的 Opera 解决方法。现在我们都知道,打印 Iframe 的唯一方法是在新窗口中打开它,然后打印它。我面临的问题是,当我的 IFrame 在新窗口中打开时,会触发一系列 ajax 调用,我想在所有 ajax 调用完成后打开打印窗口。我搜索了一下,发现了全局回调事件ajaxComplete。我的代码是这样的:
if($.browser.opera){
var href = $("iframe:visible")[0].contentWindow.location.href;
var printWindow = window.open(href, "printWindow", "scrollbars=yes");
printWindow.onload = function(){
$(this.document.getElementsByClassName("f-buttons")).hide();
$(this.document.getElementsByClassName("f-progress")).hide();
}
$(printWindow.document.body).ajaxComplete(function( event, xhr, settings ){
printWindow.print();
});
$(printWindow).ajaxComplete(function( event, xhr, settings ){
printWindow.print();
});
}
我不确定为什么一开始没有触发事件所以我也在身体上试过这个,但它没有被初始化。谁能告诉我我错过了什么?
【问题讨论】:
-
您的问题是 document.body 它在该页面上执行所有 ajax。
-
@Mr.G -- 对不起,我没有找到你。
标签: javascript jquery ajax