javascript - Problèmes liés à la désactivation de la sélection et de la copie de texte
为情所困
为情所困 2017-06-26 10:58:49
0
2
733
Le style est le suivant
.test1 {
  user-select: none;
}
La structure du HTML est la suivante
<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>

J'ai fait l'option de désactiver cet article pour certains éléments. Lorsque je sélectionne un élément individuellement, je peux en effet désactiver la sélection, et le contenu ne peut pas être copié. Cependant, si j'utilise cmd + a pour tout sélectionner, je verrai le désactivé. éléments dans La page montre qu'elle n'est pas sélectionnée, mais le contenu peut être copié à ce moment.

Ensuite, utilisez js pour contrôler :
[].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);
});

J'ai trouvé que cela prend toujours effet lors de la sélection individuelle, mais échoue lors de la sélection de tous. Je voudrais donc demander s'il existe un moyen d'intercaler les nœuds non sélectionnables parmi les nœuds sélectionnables, et également de permettre de sélectionner uniquement les nœuds sélectionnables lorsque. copie du contenu.

为情所困
为情所困

répondre à tous(2)
为情所困

Vous pouvez essayer une autre méthode, comme mettre le texte en CSS. Le texte en CSS ne peut pas du tout être sélectionné et copié. J'ai écrit un code de test avec désinvolture :

JsFiddle : https://jsfiddle.net/d95cugaL/

JsBin : http://jsbin.com/nowoxuceta/e...

Ou allez plus loin et mettez le texte directement sur l'image...

我想大声告诉你

Voici une idée, c'est-à-dire que vous pouvez désactiver l'événement de souris ctrl+c.
//Désactiver la copie ctrl

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

S'il y a un problème avec la sélection de tout, vous pouvez également désactiver ctrl+A

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!