我在div中有iframe并有一个打印按钮,单击“打印”后,我想打开一个新标签页并触发iframe中显示的网址的打印操作。 我正在使用Angular 7。
到目前为止我尝试过的解决方案:
How to open a link new tab with print command?
html
<div>
<iframe #iframe [src]="url" width="100%" id='event-print-iframe'
name="targetframe" allowTransparency="true" frameborder="0" >
</iframe>
<button (click)='print()'>Print</button>
</div>
component.ts
import {
//...
ElementRef,
ViewChild
} from '@angular/core';
@ViewChild('iframe') iframe: ElementRef;
print()
{
let content = this.url;
let doc = this.iframe.nativeElement.contentDocument || this.iframe.nativeElement.contentWindow;
doc.open();
doc.write(content);
doc.close();
}
来自iframe inside angular2 component, Property 'contentWindow' does not exist on type 'HTMLElement'?的解决方案
使用上述解决方案时出错:
ERROR DOMException:阻止了具有原点的帧 通过访问跨域框架获得“ http://localhost:4200”。
我有一个网址,我只想在新标签页中打开它并打印,而无需单击Ctrl + p
提前感谢您的帮助!
答案 0 :(得分:1)
您可以安装此npm模块并提供要执行的任何组合键。
https://www.npmjs.com/package/angular2-hotkeys
您必须提供目标空白href才能在新标签页中打开网址。
您可以尝试
ngAfterViewInIt() {
this.printView();
}
printView() {
window.print();
}
希望这会有所帮助:)。