页面上禁用剪切,复制,粘贴

之前以为禁用剪切,复制,粘贴得整一大堆js,结果今天一查,发现竟然是组件的一个属性,- -!

剪切:oncut

复制:oncopy

粘贴:onpaste

这三样属性主要针对的是文本组件,比如<input type="text"/>,<textarea></textarea> ,<p></P>等,需要注意的是p标签需要注意contenteditable="true"(可编辑,又涨姿势了~~)这个属性。准确的讲这是三个时间,可以在触发时执行相应的脚本。

oncut

例子:

 1 <!DOCTYPE html>
 2 <html>
 3 <body>
 4
 5 <p>该实例演示了如何向 input 元素中添加 "oncut" 事件。</p>
 6
 7 <input type="text" oncut="myFunction()" value="尝试剪切该文本">
 8 <textarea oncut="myFunction()">ddd</textarea>
 9 <input type="text" oncut="return false;" value="设为return false你将无法剪切">
10 <script>
11 function myFunction() {
12     alert("你剪切了文本!");
13 }
14 </script>
15
16 </body>
17 </html>
18         

oncopy

例子:

<!DOCTYPE html>
<html>
<body>

<p>该实例演示了如何向 input 元素中添加 "oncut" 事件。</p>

<input type="text" oncopy="myFunction()" value="尝试复制该文本">
<textarea oncopy="myFunction()">ddd</textarea>
<input type="text" oncopy="return false;" value="设为return false你将无法复制">
<script>
function myFunction() {
    alert("你复制了文本!");
}
</script>

</body>
</html>
        

onpaste

<!DOCTYPE html>
<html>
<body>

<p>该实例演示了如何向 input 元素中添加 "oncut" 事件。</p>

<input type="text" onpaste="myFunction()" value="尝试粘贴">
<textarea onpaste="myFunction()">ddd</textarea>
<input type="text" onpaste="return false;" value="设为return false你将无法粘贴">
<p contenteditable="true" onpaste="myFunction()">尝试在段落中粘贴内容。</p>
<script>
function myFunction() {
    alert("你剪切了文本!");
}
</script>

</body>
</html>
        

注意事项:

1、<p>元素如果要让这oncut和onpaste可用,则必须要把contenteditable="true"加上,毕竟能编辑才能谈剪切复制嘛

2、如果要禁用这三样功能,那么把属性值设为“return false;”,只是设为false是不行的。而且,“return false;”写在方法最后作为返回值是没有用的,比如:

<p contenteditable="true" onpaste="myFunction()">尝试在段落中粘贴内容。</p>
<script>
function myFunction() {
    alert("你剪切了文本!");
    return false;  //这里是不起任何作用的
}
</script>

3.上面只是列举了在html中使用,那么如何在js中使用下面举个例子:

<!DOCTYPE html>
<html>
<body>

<p>该实例演示了如何使用 HTML DOM 向 input 元素中添加 "onpaste" 事件。</p>

<input type="text" id="myInput" value="尝试在此处粘贴文本" size="40">
<input type="text" id="myInput2" value="尝试在此处粘贴文本2" size="40">

<script>
document.getElementById("myInput").onpaste = function(){return false;};
document.getElementById("myInput2").onpaste = function() {myFunction()};

function myFunction() {
    alert("你粘贴了文本!");
}
</script>

</body>
</html>

需要注意的是,你必须要用匿名函数function将你的方法包起来,function() {myFunction()},看到这里应该明白为什么在属性中如果只是写false,或者把方法的返回值设为false没有用了吧。

那么还有一些小遗憾,如果我既不想让组件使用粘贴功能,但又希望在他用粘贴功能的时候进行一些操作,怎么办?根据上面的js代码,我们想到了方法:在你的代码中加入返回值,并且把整个方法作为结果进行返回

<!DOCTYPE html>
<html>
<body>

<p>该实例演示了如何使用 HTML DOM 向 input 元素中添加 "onpaste" 事件。</p>

<input type="text" id="myInput" value="尝试在此处粘贴文本" size="40" onpaste="return myFunction();">

<script>
function myFunction() {
    alert("你粘贴了文本!");
    return false;
}
</script>

</body>
</html>
        

以上代码全部火狐亲测,火狐版本37.0.2

时间: 2024-11-10 13:07:18

页面上禁用剪切,复制,粘贴的相关文章

禁用UITextField复制粘贴等方法

要实现此功能只需创建一个继承自UITextField的子类,重写以下方法即可. 1 - (BOOL)canPerformAction:(SEL)action withSender:(id)sender{ 2 if (action == @selector(paste:) || //粘贴 3 action == @selector(select:) || //复制 4 action == @selector(selectAll:)) //全选 5 { 6 return NO; 7 } 8 retu

angular小练习--手写弹出窗口以及文件上传或者复制粘贴,后读取打印文件内容

实现代码如下 <page-header> <ng-template> </ng-template> </page-header> <div> <nz-button-group> <button nz-button nzType="primary">新增</button> <button nz-button>编辑</button> <button nz-butto

flutter textfield 长按输入框出现【剪切/复制/粘贴】的菜单如何设置中文?

当 TextField 设置 enableInteractiveSelection 属性后长按会出现菜单,默认为英文,可通过设置 Flutter 国际化来处理: 在 pubspec.yaml 中集成 flutter_localizations: dependencies: flutter: sdk: flutter flutter_localizations: sdk: flutter 在 MaterialApp 中设置本地化代理和支持的语言类型: return MaterialApp( loc

NOIP模拟题——复制&amp;粘贴2

[Description]文本编辑器的一个最重要的机能就是复制&粘贴.JOI社现在正在开发一款能够非常高速地进行复制&粘贴的文本编辑器,作为JOI社一名优秀的程序猿,你担负起了复制&粘贴功能的测试这一核心工作.整个JOI社的命运都系在你的身上,因此你无论如何都想写出一个正确且高速的程序来完成这项工作.具体的做法如下所示.文件的内容是一个字符串S,对其进行N次复制&粘贴的操作,第i次操作复制位置Ai和位置Bi之间的所有文字,然后在位置Ci粘贴.这里位置x表示字符串的第x个字符

5.1 vim介绍 5.2 vim颜色显示和移动光标 5.3 vim一般模式下移动光标 5.4 vim一般模式下复制、剪切和粘贴

5.1 vim介绍 5.2 vim颜色显示和移动光标 5.3 vim一般模式下移动光标 5.4 vim一般模式下复制.剪切和粘贴 5.1 vim介绍 vim 是 vi的一个升级版本 vim 是带有颜色显示的 再试下vim 命令 [[email protected] ~]# vi /etc/passwd[[email protected] ~]# vim /etc/passwd-bash: vim: 未找到命令 [[email protected] ~]# yum install -y vim-e

网页上如何实现禁止复制粘贴以及如何破解

我们首先来介绍如何实现禁止复制,知道了禁止的方式,再破解就容易了. 实现禁止复制粘贴 比较简单,直接上代码: <style type="text/css"> /* 最简单的实现禁止复制的方法,采用css方式禁止文字选择,当然这只兼容webkit内核浏览器 */ * { -webkit-user-select: none; } p {font-family: 'Microsoft Yahei';font-size: 28px;} input {width: 80%; padd

vim介绍/vim颜色显示和移动光标/ vim一般模式下移动光标/ vim一般模式下复制、剪切和粘贴

5.1 vim介绍 5.2 vim颜色显示和移动光标 5.3 vim一般模式下移动光标 5.4 vim一般模式下复制.剪切和粘贴 vim   是vi的升级版本 vim 带有颜色显示 安装vim : yum install  -y    vim-enhanced vim分三种模式:一般模式.编辑模式.命令模式 一般模式: dd,yy,pp, 编辑模式:i,a, 命令模式: q,wq!,q!,set nu,set nonu;nohl(no highlight不高亮): x也可以保存退出,类似wq;

修改Delphi 10.1.2 edit控件在android的复制、剪切和粘贴样式

Delphi 10.1.2 edit控件在android默认的复制.剪切和粘贴样式太丑,经悟能-DelphiTeacher的提示,用最简单的代码修改后稍有改观. 默认的样式: 修改后的样式: 修改FMX.Platform.Android.pas 找到procedure TWindowManager.ShowContextMenu(const ItemsToShow: TContextMenuItems),按下面的红字增加Copy.cut和Paste button的setBackgroundCol

使用文档对象在页面上创建学生信息表。 信息表包括学号、姓名、性别、电子邮件、联系电话、个人主页和联系地址, 信息表内容通过表单输入,提交前先使用正则表达式进行验证,联系地址不能超过20个字符, 每输入一名学生的信息,提交后,表格增加一行,表格不能被选择、复制。

<!DOCTYPE html><html>    <head>        <meta charset="UTF-8">        <title></title>    </head>    <!--        描述:使用文档对象在页面上创建学生信息表.        信息表包括学号.姓名.性别.电子邮件.联系电话.个人主页和联系地址,        信息表内容通过表单输入,提交前先使用