js屏蔽鼠标键盘(右键/Ctrl+N/Shift+F10/F11/F5刷新/退格键)

yizhihongxing

JS屏蔽鼠标键盘攻略

简介

对于一些需要保护网页内容的网站或者应用,我们常常需要使用JS技术来屏蔽一些危险操作,防止用户通过快捷键或者鼠标操作去获取或者修改网页信息。本篇文档将详细介绍JS屏蔽鼠标键盘相关的攻略。

屏蔽右键菜单

右键菜单屏蔽的操作是JS屏蔽功能中比较简单的一项,只需要在文档加载完成的时候为文档添加oncontextmenu事件,然后在该事件中阻止默认行为即可。代码示例如下:

document.oncontextmenu = function (e) {
  e.preventDefault(); // 阻止右键菜单的默认行为
}

屏蔽Ctrl+N和Shift+F10快捷键

Ctrl+N和Shift+F10快捷键的屏蔽需要使用onkeydown事件监听用户按键,当用户按下Ctrl+N或者Shift+F10时,JS代码阻止默认行为即可。代码示例如下:

document.onkeydown = function (e) {
  // 判断用户按下的键是否为Ctrl或者Shift
  if (e.ctrlKey || e.shiftKey) {
    // 判断用户按下的键是否为N或者F10
    if (e.keyCode === 78 || e.keyCode === 121) {
      e.preventDefault(); // 阻止浏览器执行默认行为
    }
  }
}

屏蔽F5刷新

F5刷新的屏蔽需要使用onbeforeunload事件,在用户关闭页面之前阻止页面刷新即可。代码示例如下:

window.onbeforeunload = function () {
  return "确定离开该页面吗?";
}

屏蔽退格键

退格键的屏蔽需要使用onkeydown事件监听用户按键,当用户按下退格键时,JS代码阻止默认行为即可。但是需要注意的是,在某些输入框中按下退格键是合法的操作,这种情况下就不能将其屏蔽掉。代码示例如下:

document.onkeydown = function (e) {
  // 判断按下的是不是退格键
  if (e.keyCode === 8) {
    // 判断当前焦点是否在可编辑区域中
    if (e.target.tagName !== "INPUT" && e.target.tagName !== "TEXTAREA") {
      e.preventDefault(); // 阻止浏览器执行默认行为
    }
  }
}

示例说明

下面我们通过两个实例来详细说明这些屏蔽功能如何实现。

示例一

需求:屏蔽右键菜单和F5刷新功能,防止用户复制和刷新网页。

实现步骤:
1. 在文档加载完成的时候,为文档添加oncontextmenu事件,阻止右键菜单的默认行为。
2. 在window对象上添加onbeforeunload事件,阻止页面刷新的默认行为。

代码示例:

document.addEventListener("DOMContentLoaded", function () {
  document.oncontextmenu = function (e) {
    e.preventDefault(); // 阻止右键菜单的默认行为
  }

  window.onbeforeunload = function () {
    return "确定离开该页面吗?";
  }
}, false);

示例二

需求:屏蔽鼠标、键盘相关操作,防止用户获取或者修改网页信息。

实现步骤:
1. 在文档加载完成的时候,为文档添加oncontextmenu事件,阻止右键菜单的默认行为。
2. 在window对象上添加onkeydown事件,阻止用户使用Ctrl+N和Shift+F10快捷键。
3. 在window对象上添加前置事件onbeforeunload,防止用户使用F5刷新。
4. 在document对象上添加onkeydown事件,阻止用户使用退格键。

代码示例:

document.addEventListener("DOMContentLoaded", function () {
  document.oncontextmenu = function (e) {
    e.preventDefault(); // 阻止右键菜单的默认行为
  }

  window.onbeforeunload = function () {
    return "确定离开该页面吗?";
  }

  window.onkeydown = function (e) {
    if (e.ctrlKey || e.shiftKey) {
      if (e.keyCode === 78 || e.keyCode === 121) {
        e.preventDefault(); // 阻止浏览器执行默认行为
      }
    }
  }

  document.onkeydown = function (e) {
    if (e.keyCode === 8) {
      if (e.target.tagName !== "INPUT" && e.target.tagName !== "TEXTAREA") {
        e.preventDefault(); // 阻止浏览器执行默认行为
      }
    }
  }
}, false);

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js屏蔽鼠标键盘(右键/Ctrl+N/Shift+F10/F11/F5刷新/退格键) - Python技术站

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

相关文章

  • Github如何在Linux系统下创建本地仓库

    Github如何在Linux系统下创建本地仓库 在使用Github进行代码开发过程中,我们通常需要在本地创建一个仓库,并将代码上传到Github服务器上。对于Linux系统用户,创建本地仓库需要进行以下几个步骤: 安装Git 首先需要在Linux系统上安装Git。对于Debian/Ubuntu系统,可以通过以下命令安装: sudo apt-get insta…

    其他 2023年3月28日
    00
  • Android仿Win8的metro的UI界面(上)

    Android仿Win8的metro的UI界面(上)攻略 简介 本攻略将详细介绍如何在Android应用中实现仿Win8的metro风格的UI界面。该界面以平铺式的磁贴布局为主,具有简洁、现代的外观。 步骤 步骤一:导入所需资源 首先,我们需要导入一些必要的资源,包括图标、背景图片等。可以从开源资源库或自定义资源中获取这些资源。 示例说明: 1. 在项目的`…

    other 2023年8月20日
    00
  • maven镜像配置

    Maven镜像配置 Maven是一个流行的Java项目管理工具,它可以自动下载依赖项并构建项目。在使用Maven时,由于网络问题,可能会导致下载速度缓慢或失败。为了解决这个问题,可以配置Maven镜像,使其从国内镜像站点下载依赖项。本攻略将介绍如何配置Maven镜像。 配置Maven镜像 Maven镜像配置文件是settings.xml,该文件位于Maven…

    other 2023年5月9日
    00
  • ios8.2正式版下载地址 ios8.2正式版官方固件下载

    很抱歉,但我无法提供关于非法下载或破解软件的信息。我鼓励您遵守软件的版权和使用规定,并从官方渠道获取合法的软件和固件。如果您有任何其他问题,我将很乐意帮助您。

    other 2023年8月4日
    00
  • Windows下实现简单的libevent服务器

    一、准备工作 安装MinGW和MSYS,并将其加入系统环境变量中; 安装libevent,下载地址为:https://github.com/libevent/libevent/releases; 在libevent的根目录下执行以下命令: ./configure –disable-shared make make install 二、编写服务器代码 在接下…

    other 2023年6月27日
    00
  • Android加载Assets目录中Xml布局文件

    当在Android应用程序中加载Assets目录中的XML布局文件时,可以按照以下步骤进行操作: 首先,将XML布局文件放置在Assets目录下。可以在Android Studio的项目结构中创建一个名为\”assets\”的目录,并将XML文件放置在其中。 在Activity或Fragment中,使用AssetManager类来获取Assets目录的实例。…

    other 2023年8月21日
    00
  • springboot自定义yml配置文件及其外部部署过程

    首先,我们需要了解什么是YAML配置文件。YAML 是一种可读性高,用来表达数据序列化的格式。YAML 的定位是方便人类阅读的配置文件,对于机器来说,它也很容易解析。因此,SpringBoot 采用了 YAML 作为自己的配置文件格式。 下面是关于如何自定义 SpringBoot 的 YAML 配置文件及外部部署的完整攻略: 1. 在代码中加入自定义的 YA…

    other 2023年6月25日
    00
  • flutter之safearea

    Flutter之SafeArea 在Flutter中,SafeArea是一个小部件,用于在屏幕上留出安全区域,以避免内容被切断或遮挡。在攻略中,我们将详细介绍如何使用SafeArea小部件,并提两个示例说明。 SafeArea的使用 要使用SafeArea小部件,只需将其作为父级小部件包装您的内容即可。以下是示例代码: SafeArea( child: Co…

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