如何在新窗口中打开URL,然后触发Ctrl + P(打印)?

时间:2019-03-05 21:18:08

标签: angular iframe window-object

我在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

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

See I am able to open the link in a new tab and the print window appears. ----------


您可以安装此npm模块并提供要执行的任何组合键。

https://www.npmjs.com/package/angular2-hotkeys

您必须提供目标空白href才能在新标签页中打开网址。

您可以尝试

  ngAfterViewInIt() {
           this.printView();
  }


   printView() { 
           window.print();
   }

希望这会有所帮助:)。