javascript - Isu tentang melumpuhkan pemilihan dan penyalinan teks
为情所困
为情所困 2017-06-26 10:58:49
0
2
779
Gayanya seperti berikut
.test1 {
  user-select: none;
}
Struktur html adalah seperti berikut
<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.

Seterusnya, gunakan js untuk mengawal:
[].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.

为情所困
为情所困

membalas semua(2)
为情所困

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

document.onkeydown=function(){
    if((event.ctrlKey) && (window.event.keycode==67)){
          event.returnValue=false;
          alert("Ctrl+C被禁止啦!");
    }
}

Jika ada masalah dengan memilih semua, anda juga boleh melumpuhkan ctrl+A

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan