JS实现网页全屏、禁止复制网页文字、禁止粘贴功能

一、网页全屏、退出网页全屏

使用requestFullscreen()方法实现网页全屏,exitFullscreen()方法退出网页全屏。以下是实现网页全屏的示例代码:

<!DOCTYPE html>
<html>
	<head>
		<title>Login Form</title>
		<meta charset="utf-8">
	</head>
	<style>
		html,
		/* 该CSS用于进去全屏后,背景颜色改变 */
		body {
			height: 100%;
			background-color: #fff;
			/* 设置全屏模式下的背景颜色 */
			color: #000;
			/* 设置全屏模式下的字体颜色 */
		 font-size: 16px;
			/* 设置全屏模式下的字体大小 */
		}
	</style>
	<body>
		<button  onclick="ins()">进入全屏</button>
		<button  onclick="outs()">退出全屏</button>
	</body>
	<script>
		//进入全屏
		function ins(){
			var element = document.body; // 需要全屏的元素,这里指定为 body 元素
			if (element.requestFullscreen) {
			  element.requestFullscreen();
			} else if (element.webkitRequestFullscreen) { /* Safari */
			  element.webkitRequestFullscreen();
			} else if (element.msRequestFullscreen) { /* IE11 */
			  element.msRequestFullscreen();
			}
		}
		//退出全屏
		function outs(){
			if (document.exitFullscreen) {
			  document.exitFullscreen();
			} else if (document.webkitExitFullscreen) { /* Safari */
			  document.webkitExitFullscreen();
			} else if (document.msExitFullscreen) { /* IE11 */
			  document.msExitFullscreen();
			}
		}
	</script>
</html>

 在网页全屏模式下,用户可以随时按Esc键或者F11键退出全屏模式,这是浏览器允许的默认操作,无法阻止。这是为了保证用户对于自己的浏览器有完全的控制权,防止恶意网站窃取用户的隐私。

二、禁止复制网页文字

监听输入框的 paste 事件,使用 e.preventDefault() 阻止浏览器默认的粘贴操作,然后使用 e.clipboardData.getData('text/plain') 获取粘贴板中的内容,最后使用 document.execCommand('insertText', false, ''); 清空输入框的内容

<!DOCTYPE html>
<html>
	<head>
		<title>Login Form</title>
		<meta charset="utf-8">
	</head>
	<body>
		<div>
			<a href="#">该文字禁止复制</a>
		</div>
	</body>
	<script>
		//防止复制文字
		document.addEventListener('copy', function(e){
		    e.preventDefault();
		    var copyTxt = window.getSelection().toString();
			//将复制内容改为空
		    var fakeTxt = " ";
		    if(copyTxt) {
		        copyTxt = fakeTxt;
		        if(e.clipboardData) {
		            e.clipboardData.setData('text/plain', copyTxt);
		        }
		        else if(window.clipboardData) {
		            window.clipboardData.setData('Text', copyTxt);
		        }
		    }
		    alert('不允许复制!');
		});
	</script>
</html>

在上述代码中,我们监听了输入框paste事件,当用户进行粘贴操作时,e.preventDefault()可以防止默认的粘贴操作,不允许用户进行粘贴操作。同时,我们可以通过e.clipboardData获取粘贴内容,并通过document.execCommand("insertHTML", false, pasteText)将内容插入到输入框中。这里我们插入粘贴内容是为了让浏览器无法阻止我们的paste事件,但是实际粘贴时内容是不会显示在输入框中的。 

三、输入框禁止粘贴

需要阻止用户在输入框中粘贴内容,可以使用 clipboardData 属性以下是阻止 paste 事件并清空粘贴板内容的示例代码:

<!DOCTYPE html>
<html>
	<head>
		<title>Login Form</title>
		<meta charset="utf-8">
	</head>
	<body>
		<div>
			<input type="text" id="myInput" value="禁止粘贴"/>
		</div>
	</body>
	<script>
		//防止粘贴
		var myInput = document.getElementById('myInput');
		myInput.addEventListener('paste', function(e) {
		  e.preventDefault();
		  var pasteValue = e.clipboardData.getData('text/plain');
		  document.execCommand('insertText', false, '');
		});
	</script>
</html>

在这个示例中,我们监听了输入框的 paste 事件,使用 e.preventDefault() 阻止浏览器默认的粘贴操作,然后使用 e.clipboardData.getData('text/plain') 获取粘贴板中的内容,最后使用 document.execCommand('insertText', false, ''); 清空输入框的内容

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱摸鱼的呆瓜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值