我在iframe模式下使用Colorbox,我发现了一个奇怪的问题,我希望能得到一些帮助。我的iframe包含一个表单和另一个iframe (其中包含要打印的内容的预览),在表单的提交处理程序上,我想在嵌入的iframe上调用window.print(),然后关闭colorbox。我的代码是这样连接起来的:
$('#printer_friendly_form').submit(function () {
var previewWindow = $('iframe#print_preview').get(0).contentWindow;
setZoom($('html', previewWindow.document), 1);
previewWindow.focus();
previewWindow.print();
$('#print_preview').css('visibility', 'hidden');
parent.$.colorbox.close();
return false;
});"setZoom“位是我正在做的一个小技巧,用来缩小嵌入的iframe中的内容,以便在没有水平滚动条的情况下进行打印预览;在打印之前,我将缩放设置回1,以便正确打印出来。我已经尝试删除此代码,但它似乎不会影响手头的问题。
我的问题是,在Chrome上,在我关闭Chrome的打印预览对话框后,需要5-8秒才能最终关闭颜色盒。如果我删除"previewWindow.print()“行,则colorbox会立即关闭。根据我的调试,Chrome将print视为同步调用,所以只有在print对话框消失后才会调用close。但它被立即调用之后,函数返回--所以我不知道如何解释实际关闭时的延迟。
我还在IE9上发现,colorbox会立即关闭(甚至在打印对话框出现之前就会关闭,这意味着IE必须是异步的)。同样,Firefox (和Chrome一样看起来也是同步的)在打印对话框完成后立即关闭colorbox。
这是一个Chrome bug/“功能”吗?或者为了让对话框立即关闭,我还应该做些什么?
发布于 2012-04-27 11:22:09
这听起来很令人沮丧。我想不出任何关于ColorBox的东西会对此做出贡献,所以我假设它是无关的。如果你执行的不是colorbox (例如一个警告),Chrome也会发生同样的事情吗?
https://stackoverflow.com/questions/10338575
复制相似问题