通过数据显示 pdf 时 firefox 挂起 url
firefox hangs when displaying a pdf via data url
我有一个使用 jspdf 在浏览器中创建 pdf 的应用程序。我想在另一个 tab/window.
中显示此 pdf
function open_data_uri_window(url) {
var html = '<html>' +
'<style>html, body { padding: 0; margin: 0; } iframe { width: 100%; height: 100%; border: 0;} </style>' +
'<body>' +
'<p>new viewer</p>' +
'<iframe type="application/pdf" src="' + url + '"></iframe>' +
'</body></html>';
var a = window.open("about:blank", "Zupfnoter");
a.document.write(html);
a.document.close();
}
它在 chrome (60.0.3112.90) 中运行良好,但在 Firefox(54.0.1 64 位 MacOs)上运行不正常。 window 挂起。
原因是 PDF.js(第 331 行)试图从 url 中提取建议的文件名。此正则表达式挂起取决于数据url.
解决方案是在 datauri 字符串中指定一个名称,以便始终找到可接受的名称,如 Is there any way to specify a suggested filename when using data: URI?
的评论 1 中所述
function open_data_uri_window(url) {
var url_with_name = url.replace("data:application/pdf;", "data:application/pdf;name=myname.pdf;")
var html = '<html>' +
'<style>html, body { padding: 0; margin: 0; } iframe { width: 100%; height: 100%; border: 0;} </style>' +
'<body>' +
'<p>new viewer</p>' +
'<iframe type="application/pdf" src="' + url_with_name + '"></iframe>' +
'</body></html>';
var a = window.open("about:blank", "Zupfnoter");
a.document.write(html);
a.document.close();
}
提示:Chrome 的内置查看器不支持指定的名称
我有一个使用 jspdf 在浏览器中创建 pdf 的应用程序。我想在另一个 tab/window.
中显示此 pdffunction open_data_uri_window(url) {
var html = '<html>' +
'<style>html, body { padding: 0; margin: 0; } iframe { width: 100%; height: 100%; border: 0;} </style>' +
'<body>' +
'<p>new viewer</p>' +
'<iframe type="application/pdf" src="' + url + '"></iframe>' +
'</body></html>';
var a = window.open("about:blank", "Zupfnoter");
a.document.write(html);
a.document.close();
}
它在 chrome (60.0.3112.90) 中运行良好,但在 Firefox(54.0.1 64 位 MacOs)上运行不正常。 window 挂起。
原因是 PDF.js(第 331 行)试图从 url 中提取建议的文件名。此正则表达式挂起取决于数据url.
解决方案是在 datauri 字符串中指定一个名称,以便始终找到可接受的名称,如 Is there any way to specify a suggested filename when using data: URI?
的评论 1 中所述function open_data_uri_window(url) {
var url_with_name = url.replace("data:application/pdf;", "data:application/pdf;name=myname.pdf;")
var html = '<html>' +
'<style>html, body { padding: 0; margin: 0; } iframe { width: 100%; height: 100%; border: 0;} </style>' +
'<body>' +
'<p>new viewer</p>' +
'<iframe type="application/pdf" src="' + url_with_name + '"></iframe>' +
'</body></html>';
var a = window.open("about:blank", "Zupfnoter");
a.document.write(html);
a.document.close();
}
提示:Chrome 的内置查看器不支持指定的名称