javascript - 我正在尝试在新窗口中打开 pdf 文件并在打开窗口后打开打印对话框
问题描述
我正在尝试在新窗口中打开 pdf 文件并在打开窗口后打开打印对话框,但是打开打印对话框的 print() 方法被跨域阻止,因为控制台返回此错误 DOMException: Blocked a来源为“ http://localhost:4200 ”的框架访问跨域框架。我该如何解决这个问题?
print() {
var myWindow = window.open('https://mediasb.shiftinc.com/booking_pdfs/QALNHF.pdf', 'Booking', 'width=600,height=600');
myWindow.print();
myWindow.focus();
}
<button (click)= "print()"> Print</button>
解决方案
以角度执行此操作:-
this.http.get('https://mediasb.shiftinc.com/booking_pdfs/QALNHF.pdf', {responseType: 'blob'}).subscribe((res) => {
let url = window.URL.createObjectURL(res);
var myWindow = window.open(url, 'Booking', 'width=600,height=600');
myWindow.print();
myWindow.focus();
});
推荐阅读
- c++ - 按值传递类时,调用者或被调用者是否调用析构函数?
- sql - 如何在右表上仅使用 1 行(前 1 行)使用多个 id 进行多个左连接
- linux - 带有 MFA 的堡垒服务器
- javascript - Javascript 从数组中的高点组中挑选出峰值数
- python - TypeError:“浮动”对象在活动对象检测中不可迭代
- unit-testing - Stencil 1.0.2 中的 Jest 计时器模拟是否损坏?
- python - 如何使用 Python Pulp 将主题限制为舍入整数
- python - 自动解析从 Json 中提取的 Dataframe 行
- angular - 如何将过多的组件放入另一个组件中(模块 -> 模块 -> 模块)
- r - 错误:== irace == 'digits' (--digits) 必须在 MLR 包内的 [1,15] 内