.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>
Saya telah membuat pilihan untuk melumpuhkan artikel ini untuk beberapa item Apabila memilih item sahaja, pemilihan memang boleh dilumpuhkan, dan kandungannya tidak boleh disalin, tetapi jika anda menggunakan cmd + a
untuk memilih semua, anda akan melihat item dilumpuhkan dalam Halaman menunjukkan bahawa ia tidak dipilih, tetapi kandungan boleh disalin pada masa ini.
[].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);
});
Saya mendapati ia masih berkuat kuasa apabila memilih secara individu, tetapi gagal apabila memilih semua Jadi saya ingin bertanya sama ada terdapat sebarang cara untuk menyelangi nod yang tidak boleh dipilih antara nod yang boleh dipilih, dan juga membolehkan untuk memilih hanya nod yang boleh dipilih apabila. menyalin kandungan.
Anda boleh mencuba cara lain, seperti meletakkan teks dalam css. Teks dalam css tidak boleh dipilih dan disalin sama sekali. Saya menulis kod ujian secara santai:
JsFiddle: https://jsfiddle.net/d95cugaL/
JsBin: http://jsbin.com/nowoxuceta/e...
Atau pergi selangkah lebih jauh dan letakkan teks terus pada imej...
Ini adalah idea, iaitu, anda boleh melumpuhkan acara tetikus ctrl+c.
// Lumpuhkan salinan ctrl
Jika ada masalah dengan memilih semua, anda juga boleh melumpuhkan ctrl+A