JS实现屏蔽网页右键复制及ctrl+c复制的方法【2种方法】

JS实现屏蔽网页右键复制及Ctrl+C复制的方法有两种,分别是使用JavaScript事件取消默认行为和使用CSS样式禁用右键菜单显示。下面我将一步步为你详细讲解,并提供两个示例说明。

方法一:使用JavaScript取消默认行为

步骤一:添加事件监听器

首先,我们在需要屏蔽复制的页面上添加事件监听器,通过addEventListener方法来监听contextmenukeydown事件,实现禁用右键菜单和Ctrl+C复制功能。

document.addEventListener('contextmenu', function(event) {
    event.preventDefault();
});
document.addEventListener('keydown', function(event) {
    if (event.ctrlKey && (event.keyCode === 67 || event.keyCode === 86)) {
        event.preventDefault();
    }
});

步骤二:取消默认行为

在事件触发时,我们通过event.preventDefault()方法来取消默认行为,从而实现屏蔽复制功能。

示例一

<!DOCTYPE html>
<html>
<head>
    <title>屏蔽复制示例一</title>
</head>
<body>
    <p>这是一段文本。</p>
    <script>
        document.addEventListener('contextmenu', function(event) {
            event.preventDefault();
        });
        document.addEventListener('keydown', function(event) {
            if (event.ctrlKey && (event.keyCode === 67 || event.keyCode === 86)) {
                event.preventDefault();
            }
        });
    </script>
</body>
</html>

在上面的示例中,我们添加了两个事件监听器,并在事件触发时通过preventDefault()方法来取消默认行为,禁用右键菜单和Ctrl+C复制功能。

方法二:使用CSS样式禁用右键菜单显示

步骤一:添加CSS样式

我们可以使用CSS样式来禁用右键菜单显示,为需要屏蔽复制的元素设置-webkit-touch-callout: none;属性即可。

.no-copy {
  -webkit-touch-callout: none;
}

步骤二:应用CSS样式

通过JavaScript代码,我们可以获取所有需要屏蔽复制的元素,并将其添加no-copy类。

var noCopyElems = document.querySelectorAll('.no-copy');
for (var i = 0; i < noCopyElems.length; i++) {
    noCopyElems[i].classList.add('no-copy');
}

示例二

<!DOCTYPE html>
<html>
<head>
    <title>屏蔽复制示例二</title>
    <style>
        .no-copy {
          -webkit-touch-callout: none;
        }
    </style>
</head>
<body>
    <p>这是一段可以被复制的文本。</p>
    <p class="no-copy">这是一段被禁止复制的文本。</p>
    <script>
        var noCopyElems = document.querySelectorAll('.no-copy');
        for (var i = 0; i < noCopyElems.length; i++) {
            noCopyElems[i].classList.add('no-copy');
        }
    </script>
</body>
</html>

在上面的示例中,我们通过CSS样式-webkit-touch-callout: none;来禁用右键菜单显示,然后通过JavaScript代码获取所有需要屏蔽复制的元素,并将其添加no-copy类。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS实现屏蔽网页右键复制及ctrl+c复制的方法【2种方法】 - Python技术站

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

相关文章

  • jQWidgets jqxDateTimeInput dropDownVerticalAlignment属性

    以下是关于“jQWidgets jqxDateTimeInput dropDownVerticalAlignment属性”的完整攻略,包含两个示例说明: 简介 jqxDateTimeInput 控件的 dropDownVerticalAlignment 属性用于设置日期时间选择器下拉框的垂直对齐方式。 完整攻略 以下是 jqxDateTimeInput 控件…

    jquery 2023年5月11日
    00
  • jQuery插件datepicker 日期连续选择

    当需要在网页中实现日期选择功能时,jQuery插件datepicker提供了很好的支持。对于需要实现连续选择日期的业务场景,我们可以使用datepicker中的range选择方式。下面,我将给出一个完整攻略,并且包含两个示例。 一、准备工作 在使用datepicker插件之前,需要先在HTML文件中引入jQuery库和datepicker插件。可以在jQue…

    jquery 2023年5月28日
    00
  • jQuery 使用手册(七)

    下面是对 “jQuery 使用手册(七)” 的详细讲解。 一、内容概述 “jQuery 使用手册(七)” 是 jQuery 官方文档的一部分,其中主要介绍了 jQuery 的 DOM 操作、特效和事件处理等方面的内容。全文共分为七个部分,分别为: DOM 操作方法 遍历方法 特效方法 事件处理方法 工具方法 AJAX 方法 JSON 方法 本手册的内容相对较…

    jquery 2023年5月27日
    00
  • jQWidgets jqxTreeGrid virtualModeRecordCreating属性

    以下是关于 jQWidgets jqxTreeGrid 组件中 virtualModeRecordCreating 属性的详细攻略。 jQWidgets jqxTreeGrid virtualModeRecordCreating 属性 jQWidgets jqxTreeGrid 的 virtualModeRecordCreating 属性用于指定虚拟模式下创…

    jquery 2023年5月12日
    00
  • jQWidgets jqxGauge RadialGauge max属性

    以下是关于“jQWidgets jqxGauge RadialGauge max属性”的完整攻略,包含两个示例说明: 简介 jqxGauge 控件的 RadialGauge 类型的 max 属性用于设置仪表盘的最大值。该属性的语法如下: $("#gauge").jqxGauge({ max: max }); 在上述代码中,#gauge 表…

    jquery 2023年5月10日
    00
  • 表单验证常用正则(强烈推荐大家收藏下)

    以下是关于“表单验证常用正则”的完整攻略。 什么是表单验证正则? 在开发Web应用时,表单验证是必不可少的,它可以防止用户输入非法数据,保证数据的正确性和完整性。而表单验证正则则是一种验证输入数据是否符合预期格式的基本手段。 常用表单验证正则 常用的表单验证正则可以归纳为以下几种类型: 1. 验证数字 验证整数:/^-?\d+$/ 验证正整数:/^\d+$/…

    jquery 2023年5月28日
    00
  • jQuery UI的Droppable out事件

    jQuery UI是一个非常流行的JavaScript框架,其中包含了许多实用的工具和插件,Droppable是其中之一,用于实现拖拽元素到指定区域的功能。Droppable事件包括了Draggable的Drag事件,使得我们可以对拖拽的元素进行更多的操作,并且还提供了Droppable的out事件可以让我们在这些元素离开指定区域时进行一些额外的处理。 Dr…

    jquery 2023年5月12日
    00
  • jQWidgets jqxMenu mode属性

    以下是关于 jQWidgets jqxMenu 组件中 mode 属性的详细攻略。 jQWidgets jqxMenu mode 属性 jQWidgets jqxMenu 组件 mode 属性用于设置菜单的模式。该属性有两个可选值:’vertical’ 和 ‘horizontal’。’vertical’ 模式将菜单项直排列,而 ‘horizontal’ 模式…

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