0

我在 div 中有 iframe 并有一个打印按钮,单击打印时我想打开一个新选项卡并触发 iframe 中显示的 url 的打印操作。我正在使用 Angular 7。

到目前为止我尝试过的解决方案:

如何使用打印命令打开链接新标签?

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>

组件.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();

      }

解决方案从angular2 组件内的 iframe,“HTMLElement”类型上不存在属性“contentWindow”?

使用上述解决方案时出错:

错误 DOMException: 阻止具有源“ http://localhost:4200 ”的框架访问跨域框架。

我有一个 url,我只想在新选项卡中打开它并打印而不点击 Ctrl+p

提前感谢您的帮助!

4

1 回答 1

1

请参阅我能够在新选项卡中打开链接并出现打印窗口。----------


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

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

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

你可以试试这个

  ngAfterViewInIt() {
           this.printView();
  }


   printView() { 
           window.print();
   }

希望这可以帮助 :)。

于 2019-03-05T22:16:01.570 回答