.test1 {
user-select: none;
}
<body>
<p class="content">
<p class="test2">111</p>
<p class="test1">222</p>
<p class="test2">333</p>
<p class="test1">444</p>
<p class="test2">555</p>
</p>
</body>
Ich habe die Option eingerichtet, diesen Artikel für einige Elemente zu deaktivieren. Wenn ich ein Element einzeln auswähle, kann ich die Auswahl tatsächlich deaktivieren, und der Inhalt kann nicht kopiert werden. Wenn ich jedoch cmd + a
verwende, um alle auszuwählen, wird mir die Option „Deaktiviert“ angezeigt Elemente in Die Seite zeigt an, dass sie nicht ausgewählt ist, aber der Inhalt kann zu diesem Zeitpunkt kopiert werden.
[].forEach.call(document.querySelectorAll('.test1'), (node) => {
node.addEventListener('copy', (e) => {
e.stopPropagation();
e.preventDefault();
console.log(1);
return false;
}, true);
node.addEventListener('selectstart', (e) => {
e.stopPropagation();
e.preventDefault();
console.log(2);
return false;
}, true);
});
Ich habe festgestellt, dass es bei der Auswahl einzelner Knoten immer noch wirksam wird, bei der Auswahl aller jedoch fehlschlägt. Daher möchte ich fragen, ob es eine Möglichkeit gibt, nicht auswählbare Knoten unter den auswählbaren Knoten zu verteilen und es auch zu ermöglichen, nur die auswählbaren Knoten auszuwählen Kopieren.
可以换种思路,比如把文本放到css中。css中的文本就完全无法选中和复制了。随手写了个测试代码:
JsFiddle: https://jsfiddle.net/d95cugaL/
JsBin: http://jsbin.com/nowoxuceta/e...
或者再进一步,直接把文本放在图片上...
这儿有个思路,就是你可以禁止ctrl+c的鼠标事件。
//禁止ctrl复制
如果全选有问题,也可以禁止ctrl+A