需要阻止右键单击PDF Angular 2

时间:2018-07-13 04:19:24

标签: angular typescript angular6

我已禁用页面上所有位置的右键单击,但仅禁用了我动态生成的pdf文件,因此无法禁用它。

下面是HTML部分

<app-card *ngIf="show"> 
    <embed [src]="Url" type="application/pdf" width="100%" height="1000px" EnableContextMenu='0' >
</app-card>

这是TS部分,我也已经清理了URL。

this.busy = this.http1.post('http://192.168.1.183:8200/api/auditUser', data).subscribe((res) => {
      if (res == 'Record Not found') {
        swal('No Record Found', 'Please Try Again', 'warning');
        this.show = false;
      } else {
        this.pdfPath = res;
        this.toolbar = '#toolbar=0';
        this.pdfSrc = 'http://192.168.1.183/' + this.pdfPath + this.toolbar;
        this.Url = this.sanitizer.bypassSecurityTrustResourceUrl(this.pdfSrc);
        this.show = true;
      }
    });

2 个答案:

答案 0 :(得分:1)

让我们尝试一次,

<script type="text/javascript">
document.onmousedown = disableRightclick;
var message = "Right click not allowed !!";
function disableRightclick(evt){
    if(evt.button == 2){
        alert(message);
        return false;    
    }
}
</script>

引用链接 https://googleweblight.com/i?u=https://www.codexworld.com/how-to/embed-pdf-disable-right-click-using-javascript/&hl=en-IN

第二种方式

<html>
<body oncontextmenu= "return false;">
Right Click not allowed on this page
</body>
</html>

引用链接

https://googleweblight.com/i?u=https://www.c-sharpcorner.com/forums/disable-right-click-on-ltembed-gt-pdf-file-in-sharepoint&hl=en-IN

为您提供最终解决方案

Embed PDF on a webpage and prevent download

这些只是一个建议。

答案 1 :(得分:1)

您可以使用Host属性禁用应用卡组件

  

host属性用于将事件绑定到所有属性   该特定的类组件

在应用卡装饰器中,您需要定义主机属性

selector: 'my-app',
  templateUrl: './app.component.html',
  styleUrls: [ './app.component.css' ],
 host: {
    '(contextmenu)': 'disableClick($event)'
  }

然后,您需要在应用卡类中定义方法

private disableClick(e){
      e.preventDefault();
  }

在此处检查此示例:https://stackblitz.com/edit/contextmenu-clickoutside