首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果在关闭之前调用print(),Colorbox不会立即关闭--为什么?

如果在关闭之前调用print(),Colorbox不会立即关闭--为什么?
EN

Stack Overflow用户
提问于 2012-04-27 01:40:55
回答 1查看 432关注 0票数 0

我在iframe模式下使用Colorbox,我发现了一个奇怪的问题,我希望能得到一些帮助。我的iframe包含一个表单和另一个iframe (其中包含要打印的内容的预览),在表单的提交处理程序上,我想在嵌入的iframe上调用window.print(),然后关闭colorbox。我的代码是这样连接起来的:

代码语言:javascript
复制
        $('#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/“功能”吗?或者为了让对话框立即关闭,我还应该做些什么?

EN

回答 1

Stack Overflow用户

发布于 2012-04-27 11:22:09

这听起来很令人沮丧。我想不出任何关于ColorBox的东西会对此做出贡献,所以我假设它是无关的。如果你执行的不是colorbox (例如一个警告),Chrome也会发生同样的事情吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10338575

复制
相关文章

相似问题

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