1.只能输入和粘贴汉字 <input onkeyup="value=value.replace(/1/g,'')" onbeforepaste="<em>clipboardData</em>.setData('text ',<em>clipboardData</em>.getData('text').replace(/2/g,''))"> <input onkeyup="value=value.replace(/[^\u4E00 -\u9FA5]/g,'')" onbeforepaste="<em>clipboardData</em>.setData('text',<em>clipboardData</em>.getData('text').replace(/[^ ('text',<em>clipboardData</em>.getData('text').replace(/3/g,''))"> <input onkeyup="value=value.replace(/[ \W]/g,'') " onbeforepaste="<em>clipboardData</em>.setData('text',<em>clipboardData</em>.getData('text').replace(/[^\d]/
('text',clipboardData. getData_r('text').replace(/[\d]/g,''))" maxlength=10 name="Numbers"> 5.只能输入英文字母和数字 ('text',clipboardData. getData_r('text').replace(/[^\u4E00-\u9FA5]/g,''))"> 只能输入数字: <input onkeyup="value =value.replace(/[^\d]/g,'') "onbeforepaste="<em>clipboardData</em>.setData('text',<em>clipboardData</em>. getData_r('text ('text',<em>clipboardData</em>. getData_r('text').replace(/[^\d]/g,''))"> 控制输入框只能输入文字或数字,也可以不允许输入特殊字符 这里不允许输入如下字符 ('text',clipboardData. getData_r('text').replace(/[^\a-zA-Z\u4E00-\u9FA5]/g,''))"
个人网站、项目部署、开发环境、游戏服务器、图床、渲染训练等免费搭建教程,多款云服务器20元起。
代码示例 复制数据 document.addEventListener('copy', function(e){ e.clipboardData.setData('text/plain', 'Hello ; e.clipboardData.setData('text/html', 'Hello, hudao! 另外,应用程序可以通过event.clipboardData API来控制复制到剪贴板的数据类型和内容。 ; e.clipboardData.setData('text/html', 'Hello, hudao! ){ p rocessDataFromClipboard(e.clipboardData.getData('text/html')); e.preventDefault(); }});
\n' + '作者:{content:author}\n' + '链接:{pboot:pageurl}\n'; if(event.clipboardData ){ event.clipboardData.setData("text/html", htmlData); event.clipboardData.setData ("text/plain",textData); } else if(window.clipboardData){ return window.clipboardData.setData
}, getClipboardText: function(event){ var clipboardData = (event.clipboardData || window.clipboardData); return clipboardData.getData setClipboardText: function(event, value){ if (event.clipboardData ){ event.clipboardData.setData("text/plain", value); } else if (window.clipboardData){ window.clipboardData.setData("text"
window.clipboardData 在 IE 9 以下,document.execCommand 可能不被支持(有些贴子说可以,有些贴子说有问题) 针对上面的问题,我们要为 format、e.clipboardData 做兼容,这里有个知识点是在 IE 下,window 会有一个 clipboardData,我们可以把要复制的内容存到 window.clipboardData。 e.clipboardData) { // 只有 IE 11 里 e.clipboardData 一直为 undefined // 这里 format 要转为 IE 11 } else { e.clipboardData.clearData() e.clipboardData.setData(format, text) } 这鬼玩意只有 IE 上有 window.clipboardData.setData(format || 'text', text) // @ts-ignore window.clipboardData
else { textElem.innerText = data.items[i].getAs("text/plain"); } } }); 更传统一点的方法是用 e.clipboardData ,监听 document 某个事件,然后拿到当前 clipboard 内容,不过要注意这个方法在 IE 下需要用 e.clipboardData('Text'): if (e && e.clipboardData && e.clipboardData.types && e.clipboardData.getData) { // Check for 'text/html' in types list. back to 'text/plain' as // Safari/Edge don't advertise HTML data even if it is available types = e.clipboardData.types == -1)) { // Extract data and pass it to callback pastedData = e.clipboardData.getData('text
body> <script> // 监听整个网页的copy(复制)事件 document.addEventListener('copy', function (event) { // clipboardData 对象是为通过编辑菜单、快捷菜单和快捷键执行的编辑操作所保留的,也就是你复制或者剪切内容 let clipboardData = event.clipboardData || window.clipboardData clipboardData) { return; } // Selection 对象,表示用户选择的文本范围或光标的当前位置。 toString(); if (text) { // 如果文本存在,首先取消文本的默认事件 event.preventDefault(); // 通过调用常clipboardData clipboardData clipboardData 属性保存了一个 DataTransfer 对象(用户剪切板的内容),这个对象可用于: format数据类型有:text/plain,text/
, autoHide: true }) } }); function setClipboardText(event) { var clipboardData = event.clipboardData || window.clipboardData; if (clipboardData) { event.preventDefault(); var htmlData + '来源:https://blog.sxchl.cn/\n\n' + window.getSelection().toString(); clipboardData.setData ('text/html', htmlData); clipboardData.setData('text/plain',textData); } } </script>
).length > 10) { setClipboardText(e); } }); function setClipboardText(event) { var clipboardData = event.clipboardData || window.clipboardData; if (clipboardData) { event.preventDefault >\n\n' + window.getSelection().toString(); clipboardData.setData('text/html', htmlData ); clipboardData.setData('text/plain',textData); } } </script> 效果 著作权归作者所有。
('text',clipboardData.getData('text').replace(/[^/u4E00-/u9FA5]/g,''))" 用正则表达式限制只能输入全角字符: οnkeyup="value =value.replace(/[^/uFF00-/uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData (/[^/uFF00-/uFFFF]/g,''))" 用正则表达式限制只能输入数字:οnkeyup="value=value.replace(/[^/d]/g,'') "onbeforepaste="clipboardData.setData ('text',clipboardData.getData('text').replace(/[^/d]/g,''))" 用正则表达式限制只能输入数字和英文:οnkeyup="value=value.replace (/[/W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/d
, autoHide: true }) } }); function setClipboardText(event) { var clipboardData = event.clipboardData || window.clipboardData; if (clipboardData) { event.preventDefault(); var htmlData + '来源:https://www.52xzv.cn/\n\n' + window.getSelection().toString(); clipboardData.setData ('text/html', htmlData); clipboardData.setData('text/plain',textData); } } 然后就完成了,别人复制你网站的东西就会有
return event.keyCode; } }, getClipboardText: function (event) { var clipboardData = (event.clipboardData || window.clipboardData); return clipboardData.getData("text"); } , setClipboardText: function (event, value) { if (event.clipboardData) { return event.clipboardData.setData("text/plain", value); } else if (window.clipboardData) { return window.clipboardData.setData("text", value); } }, addHandler: function (element
其次研读一下 MDN 的文档 属性 ClipboardEvent.clipboardData 是一个 DataTransfer 对象,它包含了由用户发起的 cut 、 copy 和 paste //获取复制事件 document.addEventListener('copy', function (event) { //获取复制的数据 var clipboardData = event.clipboardData || window.clipboardData; if (! clipboardData) { return; } //返回一个 Selection 对象,表示用户选择的文本范围或光标的当前位置 // 获取当前用户光标选择的文本 if (text) { event.preventDefault(); //重新设置粘贴板的文本 clipboardData.setData
).length > 10) { setClipboardText(e); } }); function setClipboardText(event) { var clipboardData = event.clipboardData || window.clipboardData; if (clipboardData) { event.preventDefault >\n\n' + window.getSelection().toString(); clipboardData.setData('text/html', htmlData ); clipboardData.setData('text/plain',textData); } } </script> 这段js代码我是放在post.php的 文章内页php
`; if(e.clipboardData) { e.clipboardData.setData('text/plain', copyTxt); } else if(window.clipboardData){ return window.clipboardData.setData("text", copyTxt); }
).length > 10) { setClipboardText(e); } }); function setClipboardText(event) { var clipboardData = event.clipboardData || window.clipboardData; if (clipboardData) { event.preventDefault >\n\n' + window.getSelection().toString(); clipboardData.setData('text/html', htmlData ); clipboardData.setData('text/plain',textData); } } [/collapse] 这段js代码我是放在post.php的 文章内页
().toString().length > 10) { setClipboardText(e); } }); function setClipboardText(event) { var clipboardData = event.clipboardData || window.clipboardData; if (clipboardData) { event.preventDefault(); var htmlData >\n\n' + window.getSelection().toString(); clipboardData.setData('text/html', htmlData); clipboardData.setData
(e.clipboardData && e.clipboardData.items) ) { return; } }); 粘贴事件提供了一个clipboardData的属性,如果该属性有 clipboardData介绍 介绍一下clipboardData对象,它实际上是一个DataTransfer类型的对象,DataTransfer 是拖动产生的一个对象,但实际上粘贴事件也是它。 clipboardData的属性介绍 属性 类型 说明 dropEffect String 默认是 none effectAllowed String 默认是 uninitialized files FileList (e.clipboardData && e.clipboardData.items) ) { return ; } for (var i = 0, len = e.clipboardData.items.length ; i < len; i++) { var item = e.clipboardData.items[i]; if (item.kind === "string") {
扫码关注腾讯云开发者
领取腾讯云代金券