Mal*_*y86 6 html javascript jquery jspdf
我正在尝试打印由jspdf生成的pdf并加载到iframe上,但是我收到了错误消息:
"DOMException:通过访问跨源帧来阻止具有原始" http:// localhost:8084 "的帧."
这是我的代码:
<iframe id="pdf-prueba" name="pdf-box"></iframe>
function open(){
var pdf = new jsPDF('p', 'mm', [55, 5]);
var data = pdf.output('datauristring');
$('#pdf-box').attr("src", data).load(function(){
document.getElementById('pdf-box').contentWindow.print();
});
}
Run Code Online (Sandbox Code Playgroud)
DOMException:通过访问跨源框架阻止原始" http:// localhost:8084 "的框架."
此消息有效,因为当您使用pdf加载iframe时,您使用datauristring而不是blob设置src属性.
一个简单的解决方案基于:
使用您的方法违反了该策略,因为协议(http/data)不同:
另一个错误是:
document.getElementById('pdf-box')
Run Code Online (Sandbox Code Playgroud)
您必须使用id而不是名称,因此将其更改为:
document.getElementById('pdf-prueba')
Run Code Online (Sandbox Code Playgroud)
以下更改的代码适用于Chrome:
function open(){
var pdf = new jsPDF('p', 'mm', [55, 5]);
var blobPDF = pdf.output('blob');
var blobUrl = URL.createObjectURL(blobPDF);
$('#pdf-prueba').attr("src", blobUrl).load(function(e){
document.getElementById('pdf-prueba').contentWindow.print();
});
}
Run Code Online (Sandbox Code Playgroud)
<iframe id="pdf-prueba" name="pdf-box"></iframe>
Run Code Online (Sandbox Code Playgroud)