[英]Disable select, allow copy/paste
我正在构建一个覆盖标准选择行为并允许复制和粘贴元素的应用程序。 问题是,如果我禁用选择,复制事件也会消失。
我试过用
onselectstart="return false;"
和
.no-select {
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
它工作,但它也禁用复制事件。
我也尝试仅为包含文本的这些部分添加.no-select
属性,但它很难维护并且不能正常工作 - 有时复制事件被阻止而我无法控制它。
如何禁用选择,但启用正确的复制/粘贴方式?
编辑:
onCopy
处理程序中处理。 当您禁用突出显示/选择时,您想复制什么? 未选择的东西仍然没有
我不想复制文本(这是标准行为),而是我自己的json表示对象
然后我有两个解决你的问题的方法:
if (document.addEventListener) { document.addEventListener('contextmenu', function(e) { alert("Write own menu with copy"); e.preventDefault(); }, false); } else { document.attachEvent('oncontextmenu', function() { alert("Write own menu with copy"); window.event.returnValue = false; }); }
body { -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; }
<body> Some text </body>
ctrl + c
(以及其他类似command + c
)与函数复制绑定到剪贴板( 教程和库 )
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.