首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在子窗口中打开打印预览时,Google Chrome会阻止ajax请求

在子窗口中打开打印预览时,Google Chrome会阻止ajax请求
EN

Stack Overflow用户
提问于 2013-01-22 23:32:32
回答 4查看 7.8K关注 0票数 19

有两个文件:index.htmlprint.html

第一个包含一个使用简单命令打开print.html的按钮:

代码语言:javascript
复制
window.open("print.html", "_blank", "menubar=yes,toolbar=yes,status,scrollbars,resizable");

print.html只包含一个用于打开打印预览对话框的按钮:

代码语言:javascript
复制
<button onclick="window.print();">

打开打印预览对话框时出现问题。在这种情况下,index.html上的任何操作-即发起ajax请求的其他文件-都会被临时阻塞并放入队列中。只有当预览关闭时,浏览器才会触发所有请求。

我只能在Google Chrome (24.0.1312.52米)中看到它。

有人能确认这是Chrome的bug吗?

EN

回答 4

Stack Overflow用户

发布于 2014-06-13 18:18:40

有一个Chrome bug,当DOM中有标签时,window.print()不能工作。可以通过调用此函数来解决:

代码语言:javascript
复制
function printPage() {
    window.print();

    //workaround for Chrome bug - https://code.google.com/p/chromium/issues/detail?id=141633
    if (window.stop) {
        location.reload(); //triggering unload (e.g. reloading the page) makes the print dialog appear
        window.stop(); //immediately stop reloading
    }
    return false;
}
票数 2
EN

Stack Overflow用户

发布于 2014-07-22 16:05:45

您的服务器未添加源头。你需要把它添加到.htaccess上。例如:

代码语言:javascript
复制
Header add Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type"
Header add Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTIONS"

或者你可以在print.html上的PHP中添加它(如果你可以在html文件上使用PHP )

代码语言:javascript
复制
header ("Access-Control-Allow-Origin: *");
header ("Access-Control-Allow-Headers: origin, x-requested-with, content-type");
header ("Access-Control-Allow-Methods: PUT, GET, POST, DELETE, OPTIONS");
票数 1
EN

Stack Overflow用户

发布于 2014-07-25 13:50:26

您需要在Apache上安装mod_headers并在.htaccess上设置它。

代码语言:javascript
复制
Header add Access-Control-Allow-Origin "*"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14462163

复制
相关文章

相似问题

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