19

有2个文件:index.htmlprint.html

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

window.open("print.html", "_blank", "menubar=yes,toolbar=yes,status,scrollbars,resizable");

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

<button onclick="window.print();">

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

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

任何人都可以确认这是 Chrome 的错误吗?

4

4 回答 4

2

有一个 Chrome 错误,window.print()当 DOM 中有标签时它不起作用。可以通过调用这个函数来解决:

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;
}
于 2014-06-13T10:18:40.300 回答
1

You need to install mod_headers on Apache and set it on .htaccess

Header add Access-Control-Allow-Origin "*"
于 2014-07-25T05:50:25.880 回答
1

您的服务器未添加 ORIGIN 标头。您需要将其添加到 .htaccess 中。例如:

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)

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");
于 2014-07-22T08:05:44.960 回答
0

我在 Chrome 上遇到了类似的问题——由于安全策略的原因,它无法访问本地文件。当我进行 AJAX 调用时,我收到此错误

XMLHttpRequest cannot load file:///*. Origin null is not allowed by Access-Control-Allow-Origin.

据我所知 - 您应该使用参数启动 Chrome:

--allow-file-access-from-files

希望能帮助到你。

于 2013-02-11T13:47:54.273 回答