两种JS实现屏蔽鼠标右键的方法

yizhihongxing

当我们开发网页时,有时为了保护自己的作品,需要对网页进行一些防抄袭的处理。其中一种处理方式就是禁止用户使用鼠标右键,以避免用户通过浏览器来获取或者篡改页面源代码,接下来,我将为大家介绍两种JS实现屏蔽鼠标右键的方法。

方法一:使用DOM API禁用鼠标右键

这种方式利用了不同浏览器对于事件对象eventbutton属性值的不同解析,从而达到禁用鼠标右键的目的。方法如下:

 document.oncontextmenu = function(event){
     if (window.Event) {
         if (event.which == 2 || event.which == 3) {
             return false;
         }
     }
     else {
         if (event.button == 2 || event.button == 3) {
             event.cancelBubble = true;
             event.returnValue = false;
             return false;
         }
     }
 }

以上代码中,我们监听了DOM对象上的oncontextmenu事件,当用户右击鼠标时,便会触发此事件,我们在事件处理函数中,判断事件对象event中的鼠标键位。当键位为2(在多数浏览器中代表鼠标右键)或3(在MacOS中代表鼠标右键),便禁用此事件并返回false,从而屏蔽了鼠标右键。

方法二:阻止原生右键菜单事件

这种方式在用户右击鼠标时,弹出自定义菜单,并且屏蔽了原生的右键菜单。代码如下:

document.addEventListener('contextmenu', function (event) {
    var popmenu = document.getElementById('popmenu'); // 获取自定义菜单
    event.preventDefault(); // 阻止默认的右键菜单事件
    popmenu.style.display = 'block'; // 展示自定义菜单
    popmenu.style.left = event.clientX + 'px';
    popmenu.style.top = event.clientY + 'px';
});

在代码中,我们监听了DOM对象上的contextmenu事件,当用户右击鼠标时,便会触发此事件,我们在事件处理函数中,首先使用preventDefault()方法阻止了默认的右键菜单事件。随后,我们获取自定义的菜单元素,并使其显示出来,并将其位置定位到事件对象event的点击位置。

这种方式需要注意的是,由于屏蔽了原生的右键菜单事件,因此我们需要通过JS代码来实现自定义的右键菜单,才能达到用户体验上更好的效果。

以上是两种JS实现屏蔽鼠标右键的方法,鉴于在实际开发中这种方式被视为一种“伪保护”,因此再次提醒开发者,应该寻求更加全面更加妥善的保护措施。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:两种JS实现屏蔽鼠标右键的方法 - Python技术站

(0)
上一篇 2023年6月27日
下一篇 2023年6月27日

相关文章

  • ADO.Net 类型化DataSet的简单介绍

    ADO.Net 类型化 DataSet的简单介绍 什么是类型化 DataSet? 类型化 DataSet 是 ADO.Net 框架中的一种数据访问技术,它提供了一种强类型的方式来与关系型数据库进行交互和操作。通过使用类型化 DataSet,我们可以在编译时对数据进行验证,并且能够以面向对象的方式进行数据的访问和操作,从而提供更为可靠和灵活的数据访问。 如何创…

    other 2023年6月28日
    00
  • 永不消逝的电波(二)HackRF入门:家用无线门铃信号重放

    永不消逝的电波(二)HackRF入门:家用无线门铃信号重放 在上一篇文章中,我们讲述了HackRF的基本概念和入门使用方法,这一篇文章中,我们将以家庭无线门铃信号的重放为例来进一步学习HackRF的应用。无线门铃是一种使用无线电信号传输数据的设备,因此可以使用HackRF进行信号捕获和重放。 确定频率 首先,我们需要确定门铃信号使用的频率。方法有很多种,但在…

    其他 2023年3月28日
    00
  • 详解ASP.NET七大身份验证方式以及解决方案

    详解ASP.NET七大身份验证方式以及解决方案 身份验证的概念 身份验证是指在网络环境下确认用户身份和权限的技术。在Web应用程序中,身份验证是保护数据和其他私密或机密资源的第一道防线。ASP.NET提供了丰富的身份验证方式和解决方案,帮助开发人员轻易地实现各种需求。 Forms身份验证 Forms身份验证是ASP.NET提供的最基本的身份验证方式。它的工作…

    other 2023年6月26日
    00
  • select属性

    select属性详解 在HTML中,select元素用于创建下拉列表。select元素有一个select属性,用于指定选项是否可以被选择。本文将提供一个完整攻略,介绍select属性的用和示例。 select属性的用法 select属性有三个可选值: select:选项可以被选择。 disabled:选项不能被选择- readonly:选项可以选择,但不能被…

    other 2023年5月8日
    00
  • svg使用marker画箭头(一)

    SVG使用marker画箭头(一) SVG是一种基于XML的矢量图形格式,可用于创建图形和动画效果。使用SVG,我们可以轻松地在网页上创建高质量的矢量图形,如任意线条、多边形、矩形、圆形等。本文将介绍如何使用marker属性在SVG中画箭头。 Marker属性介绍 Marker是SVG中一个非常有用的属性,它允许我们定义一个图形,在其他元素中引用并重复使用。…

    其他 2023年3月29日
    00
  • matlab中normalize函数用法

    以下是关于“Matlab中normalize函数用法”的完整攻略: normalize函数概述 normalize函数是Matlab中的一个函数,用于将向量或矩阵归一化。归一化后的向量或矩阵的范数为1。 normalize函数语法 normalize函数的语法如下: B = normalize(A) B = normalize(A,dim) B = norm…

    other 2023年5月7日
    00
  • JavaScript使用DeviceOne开发实战(一) 配置和起步

    非常感谢对我们网站的关注,下面是JavaScript使用DeviceOne开发实战(一) 配置和起步的详细攻略。 配置DeviceOne开发环境 下载安装DeviceOne Studio 首先,我们需要下载和安装DeviceOne Studio。 DeviceOne Studio官方网站:https://www.deviceone.net/ DeviceOn…

    other 2023年6月26日
    00
  • 如何linux环境下配置环境变量过程图解

    下面是详细的Linux环境下配置环境变量的攻略,包含了过程图解和两个示例说明。 配置环境变量的过程 步骤1:进入bash shell 打开Linux终端,并进入bash shell。如果你不确定自己是否已经进入bash shell,可以输入以下命令: echo $0 如果输出结果为”bash”,则表示已经成功进入bash shell。 步骤2:查看当前环境变…

    other 2023年6月27日
    00
合作推广
合作推广
分享本页
返回顶部