html5 video标签屏蔽右键视频另存为的js代码

要实现html5 video标签屏蔽右键视频另存为,我们可以使用Javascript代码来解决。具体的实现过程如下:

1. 创建一个video标签

首先,我们需要在HTML中创建一个video标签,并指定要加载的视频文件路径。

<video id="myVideo" controls preload="metadata">
   <source src="example.mp4" type="video/mp4">
   <source src="example.webm" type="video/webm">
   <source src="example.ogg" type="video/ogg">
</video>

2. 添加JS代码

接下来,我们需要使用Javascript添加一些事件监听器来屏蔽右键菜单和屏幕截图操作。

var myVideo = document.getElementById("myVideo");

myVideo.addEventListener("contextmenu", function (e) {
   e.preventDefault();
});

myVideo.addEventListener('keydown', function (e) {
   if (e.keyCode === 44 || e.keyCode === 45 || e.keyCode === 91 || e.keyCode === 93 || e.keyCode === 123) {
      e.preventDefault();
      return false;
   }
});

myVideo.addEventListener("dragstart", function (e) {
   e.preventDefault();
});

在这个代码中,我们首先通过getElementById()方法获取到video标签的DOM对象。然后,我们使用addEventListener()方法分别添加了三个事件监听器:contextmenu、keydown和dragstart。

  • contextmenu事件监听器:当用户右键点击video标签时,preventDefault()方法会阻止默认的右键菜单弹出,这就能防止用户另存为视频。

  • keydown事件监听器:当用户按下一些快捷键时,如Ctrl+S、Shift+PrintScreen、F12等时,preventDefault()方法也会阻止默认的操作,这就能防止用户截屏或其他操作。

  • dragstart事件监听器:当用户尝试拖动视频时,preventDefault()方法也会阻止默认的操作,这就能防止用户拖动视频到其他地方。

示例1:屏蔽video标签右键菜单

<!DOCTYPE html>
<html>
<head>
    <title>禁止右键保存视频</title>
    <meta charset="utf-8">
    <script>
        window.onload = function() {
            var video = document.getElementById('myVideo');
            video.addEventListener('contextmenu', function(e) {
                e.preventDefault();
            },false);
        }
    </script>
</head>
<body>
 <video id="myVideo" src="sample.mp4" width="640" height="480" controls></video>
</body>
</html>

在这个示例中,我们在window.onload事件中添加了一个事件监听器。当用户右键点击video标签时,preventDefault()方法将阻止默认的右键菜单弹出。

示例2:屏蔽video标签右键菜单、快捷键和拖拽操作

<!DOCTYPE html>
<html>
<head>
    <title>禁止右键保存视频</title>
    <meta charset="utf-8">
    <script>
        window.onload = function() {
            var video = document.getElementById('myVideo');
            video.addEventListener('contextmenu', function(e) {
                e.preventDefault();
            },false);

            video.addEventListener('keydown', function(e) {
                if (e.keyCode === 44 || e.keyCode === 45 || e.keyCode === 91 || e.keyCode === 93 || e.keyCode === 123) {
                    e.preventDefault();
                    return false;
                }
            },false);

            video.addEventListener('dragstart', function(e) {
                e.preventDefault();
            },false);
        }
    </script>
</head>
<body>
 <video id="myVideo" src="sample.mp4" width="640" height="480" controls></video>
</body>
</html>

在这个示例中,我们在window.onload事件中添加了三个事件监听器,分别是对应的contextmenu、keydown和dragstart事件。这些监听器都使用preventDefault()方法阻止了对应事件的默认行为,来达到屏蔽右键菜单、快捷键和拖拽操作的目的。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:html5 video标签屏蔽右键视频另存为的js代码 - Python技术站

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

相关文章

  • Mysql 安装及my.ini的创建过程

    MySQL是一款常用的关系型数据库管理系统,本文将介绍如何安装MySQL并创建my.ini配置文件。 安装MySQL 下载MySQL安装包 如需下载安装包,请前往官网选择适合自己系统的版本。 安装MySQL 打开安装包,按照提示页面进行操作。在MySQL Installer中,选择完整型安装,以获得最常用的MySQL组件。 配置MySQL 在安装程序中的“T…

    other 2023年6月27日
    00
  • java中staticclass静态类详解

    Java中Static Class静态类详解 什么是Static Class静态类? 在Java中,静态类(Static Class)是指一个类被声明为静态后,就不能通过实例化对象来调用它的非静态成员。也就是说,声明为静态后的类,可以直接使用类名来访问其中的成员,而不需要创建对象。 静态类的语法 静态类的语法与普通类基本相同,只需要在类的前面加上static…

    other 2023年6月27日
    00
  • Verilog 8 种编译指令使用详解

    Verilog 8 种编译指令使用详解 编译指令是Verilog编译器中的关键命令,它可以控制Verilog代码的编译和仿真过程。在本文中,我们将详细介绍Verilog代码中的8种编译指令,并附上相应的示例说明。 `include 指令 `include指令可以将一个或多个文件中的内容导入到当前文件中,并且可以使用两种方式导入文件:绝对路径或相对路径。 下面…

    other 2023年6月26日
    00
  • 使用springboot配置和占位符获取配置文件中的值

    使用Spring Boot进行应用开发时,经常需要读取配置文件中的信息。Spring Boot提供了使用配置文件和占位符的方式来获取配置文件中的值的方法。 Spring Boot支持多种配置文件格式,如properties、yaml和json等格式。一般来说,配置文件要放在src/main/resources目录下。 使用配置文件获取配置文件中的值 配置文件…

    other 2023年6月25日
    00
  • 关键词突然下降的原因总结与解决方法

    关键词突然下降的原因总结与解决方法 关键词突然下降是网站流量骤降的主要原因之一。本文将总结关键词突然下降的原因,并提供解决方法,帮助网站维护稳定的流量。 原因 1. 网站被惩罚 谷歌等搜索引擎会对违反规定的网站进行惩罚,如内容重复、外链过度等。一旦网站被惩罚,则会导致关键词排名直接下降。 解决方法:- 检查网站是否被惩罚,可以通过搜索引擎工具箱上的黑名单检测…

    other 2023年6月27日
    00
  • Go语言利用接口实现链表插入功能详解

    Go语言利用接口实现链表插入功能详解 简介 本篇攻略将会介绍如何使用Go语言的接口来实现链表的插入功能。链表是一种常用的数据结构,可以方便地在其中插入和删除元素。通过实现链表的插入功能,我们可以更全面地理解接口在Go语言中的应用。 链表结构体 在实现链表之前,我们需要定义一个链表的结构体。该结构体包含两个字段,一个是链表的元素值,另一个是后继指针。 type…

    other 2023年6月27日
    00
  • Administrator系统管理员帐户如何修改名称

    讲解如何修改Administrator账户名称: 首先,以管理员身份登录操作系统以获取管理权限。 打开Windows PowerShell或者命令提示符窗口,并使用net user命令进行修改用户名操作。具体命令如下: net user administrator 新用户名 其中,新用户名可根据用户自己的需求进行修改。- 等待修改完成,重新启动计算机以使修改…

    other 2023年6月27日
    00
  • Java 获取 jar包以外的资源操作

    Java 获取 jar 包以外的资源操作,一般可以使用 Java 标准库中的类 java.io.File 或者第三方库来实现。本文将会详细讲解该过程的完整攻略。 获取当前项目的根目录 String rootPath = System.getProperty("user.dir"); 其中,System 是 Java 标准库中的类,我们通过…

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