
首先想到的就是禁用文本框的onkeydown事件了:
<input type="text" onkeydown="return false">这样文本框不能输入任何字符,可以用鼠标右键菜单的“粘贴”来粘贴复制的字符,但这样做有一个缺点:粘贴的快捷键也被禁用了,无法使用Ctrl+V来粘贴值。所以我们改造一下代码:
<input type="text" id="demo"> document.getElementById('demo').onkeydown = function(event) {var evt = event || window.event
if (evt.ctrlKey && evt.keyCode == 86) { // ctrl + v
console.log('粘贴快捷键按下')
} else {
return false
}
}
至此以上代码已基本满足预期要求,但你会发现粘贴进去的内容没办法删除(因为backspace和delete键也被禁用了),所以最终的代码应该是这样的:
document.getElementById('demo').onkeydown = function(event) {var evt = event || window.event
console.log(evt.keyCode)
if (evt.ctrlKey && evt.keyCode == 86) { // ctrl + v
console.log('粘贴快捷键按下')
} else if (evt.keyCode == 8 || evt.keyCode == 46) { // backspace和delete键
} else {
return false
}
}
完整代码如下:<html>
<head>
<title>MyHtml.html</title>
<script type="text/javascript">
function contentCopy(){
//获取到对象
var obj = document.getElementById("contentId")
//选择文本框中得所以内容
obj.select()
//执行复制功能
document.execCommand("copy")
}
</script>
</head>
<body>
<textarea cols=50 rows=5 name="content" id="contentId">测试被复制的内容</textarea>
<input type="button" name="allCopy" value="全部复制"
onClick="contentCopy()" />
</body>
</html>
希望帮助您! 还望采纳!!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)