IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

interdire le copier coller (partiellement)


Sujet :

JavaScript

  1. #1
    Membre régulier Avatar de tavarlindar
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 262
    Points : 97
    Points
    97
    Par défaut interdire le copier coller (partiellement)
    Bonjour,

    Existe-il un moyen pour empêcher un utilisateur de copier un tableau html ?

    Actuellement j'ai une page qui affiche :
    - des champs input (texte) qui permettent de faire une recherche et
    - un tableau
    Pour éviter le copier coller du tableau , j'ai mis ce code sur la page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    function voleur(e)
    { return false; }
    // Ici la fonction pour désactiver.
     
    function bien()
    { return true; }
     
    document.onselectstart=new Function ("return false");
    if (window.sidebar)
     {
      document.onmousedown=voleur;
     }
    // fin du script -->
    </script>
    Ce code répondrait au besoin,si les utilisateurs utilisaient un pc, mais ils sont tous sous mac. Eh ? Avec un PC, on peut utiliser le clic droit de la souris et utiliser les champs texte de recherche. Pas sous Mac.

    D'où ma question ...
    Je souhaite uniquement interdire le copier coller du tableau(surtout le coller !).
    Par avance merci

    Tavar
    Mieux vaut penser avant d'agir que d'agir en rêvant.

  2. #2
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 912
    Points
    79 912
    Par défaut
    Bonjour,

    Ne suffirait-il pas alors de désactiver le Javascript dans le navigateur et de sauter vos protections ?

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    une desactivation du js permettrait en effet la copie du tableau...
    si le but est d'empecher la recuperation sous forme de texte le seul moyen est de mettre une image ... et encore il existe des applis ocr ...
    J'ai vu des sites qui collent des images transparentes au dessus du texte ou des div qui prennent le click, mais là encore il suffit de modifier le css de la page ou encore d'aller piocher dans le code source de la page ...

    La seule vraie protection est de ne pas mettre le texte en ligne ^^
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  4. #4
    Membre régulier Avatar de tavarlindar
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 262
    Points : 97
    Points
    97
    Par défaut
    Je suis d'accord avec vous, dans l'absolu c'est impossible d'interdire le copier coller, mais :
    1) Javascript est obligatoire pour cette application intranet
    2) les utilisateurs ne sont pas des informaticiens, même afficher le code source d'une page ne fait pas partie de leur compétences ...

    Je souhaite juste mettre en place une solution qui fonctionne pour 99% des utilisateurs
    Mieux vaut penser avant d'agir que d'agir en rêvant.

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    si c'est sous IE exclusif:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <body onselectstart="return false;" >
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  6. #6
    Membre régulier Avatar de tavarlindar
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 262
    Points : 97
    Points
    97
    Par défaut
    Normalement les utilisateurs utilisent firefox...
    Mieux vaut penser avant d'agir que d'agir en rêvant.

  7. #7
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <body oncopy="return false;" onpaste="return false;">
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  8. #8
    Membre régulier Avatar de tavarlindar
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 262
    Points : 97
    Points
    97
    Par défaut
    J'allais dire "génial", mais cela ne fonctionne pas sous mac ...

    Sur un pc avec IE, Chrome et firefox, le code fonctionne. On ne peut pas effectivement coller les données.
    Par contre sous mac, on copie et colle les données comme on veut...
    Mieux vaut penser avant d'agir que d'agir en rêvant.

  9. #9
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    ben faudrait savoir ...
    tu dis que les utilisateurs sont exclus ffx ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  10. #10
    Membre régulier Avatar de tavarlindar
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 262
    Points : 97
    Points
    97
    Par défaut
    ? ?? les utilisateurs naviguent habituellement sous firefox et utilise un mac.
    Mieux vaut penser avant d'agir que d'agir en rêvant.

  11. #11
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 912
    Points
    79 912
    Par défaut
    Oui SpaceFrog, il y a un FF qui tourne sur Mac.

  12. #12
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    une solution plus universelle consisterait à mettre un div au dessus qui intercepte le click ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onmousedown="return false;"
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  13. #13
    Invité
    Invité(e)
    Par défaut
    et avec cette fonction sa donne quoi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function voleur(ev){
    (navigator.appName.substring(0,3)=="Mic") ? event.returnValue = false : ev.preventDefault();
    }
    document.onmousedown=voleur;

  14. #14
    Membre régulier Avatar de tavarlindar
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 262
    Points : 97
    Points
    97
    Par défaut
    Hum...

    1) Petite précision concernant la solution de Bovino à savoir mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <body oncopy="return false;" onpaste="return false;">
    :
    il semblerait que ce code puisse fonctionner parfois sous mac. J'ai un utilisateur qui n'a pas pu copier les données, mais un autre lui n'a eu aucun soucis....????
    Tous les deux sont sous mac, tous les deux utilisent FF ... très très étrange.

    2) Concernant la proposition de SpaceFrog à savoir mettre dans une div
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onmousedown="return false;"
    , je viens de tester en rajoutant ce code à la définition du tableau que je souhaite protéger.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <TABLE  onmousedown="return false;" BORDER='0' CELLSPACING=2 CELLPADDING=2>
    Chez moi cela fonctionne. J'attends demain pour savoir s'il en est de même chez les utilisateurs. Je vous tiens informé.

    3) Concernant la proposition de mekal à savoir utiliser la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function voleur(ev){
    (navigator.appName.substring(0,3)=="Mic") ? event.returnValue = false : ev.preventDefault();
    }
    document.onmousedown=voleur;
    Je dois avouer ne pas savoir comment l'implémenter. Donc pas pu testé.

    Bien que ce sujet ne soit pas encore clos, je tiens dès à présent à vous remercier vivement pour votre aide.

    Tavar
    Mieux vaut penser avant d'agir que d'agir en rêvant.

  15. #15
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Note quand même que personne ne va chercher à copier ton tableau à moins que cela ait un intérêt quelconque pour lui.

    Et si les utilisateurs ont quelque chose à gagner à le faire, une mesure simpliste ne les en empêchera pas longtemps. Fondamentalement, leurs ordinateurs sont à leur service, pas au tien. (Et puis, au fond, si tu sais quel genre de machine et de navigateur ils utilisent, c'est que vous êtes partenaires. N'est-ce pas un peu bête d'empêcher un partenaire de travailler ?)

    Bref, ce qui va se passer, soit c'est que l'un d'eux s'y connaît en fait assez bien en web, va enlever cette protection et montrer aux autres comment faire. Soit il y en a un qui connaît un bon informaticien, qui lui-même est un gourou des addons firefox. Cette personne lui fera un addon qui enlève les protections anti-clic/anti-select, et voyant que ça marche, l'utilisateur fera passer à ses collègues.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  16. #16
    Membre régulier Avatar de tavarlindar
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 262
    Points : 97
    Points
    97
    Par défaut
    thelvin, bonjour,

    Je suis encore une fois d'accord, mais ... il y a un MAIS.
    pour répondre rapidement : à quoi bon mettre un cadenas sur une porte de cave ? On sait très bien qu'un voleur équipé parviendra à ses fins avec ou sans cadenas. Maintenant, pourquoi les gens le font, pourquoi les gens partent de chez eux en fermant la porte d'entrée .... Parce que cela est dissuasif, que cela demande de faire un effort, du matériel, etc. Ici c'est pareil.

    Pour en revenir à la solution de SpaceFrog, cela ne fonctionne pas en fait. On peut si on sélectionne toute la page , copier comme on veut le tableau. (J'ai mis aussi le code dans un DIV).

    Bref, je cherche une solution qui soit compatible avec mon premier code (voir ci-dessus). L'idée serait d'autoriser la sélection sur mes champs text (input) qui servent à faire une recherche. En fait, pour bien comprendre, j'ai en haut de mon tableau (fichier client ) une série de champs (text et select) qui permet de définir des critères de recherche. J'ai essayé plusieurs codes sans succès pour l'heure.

    Voici un extrait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    <FORM method="POST" ACTION='Contact.php'>
    <INPUT TYPE=HIDDEN NAME="action" VALUE="Recherche">
    <CENTER><TABLE  BORDER='0' CELLSPACING=2 CELLPADDING=2>
     
    <TR bgcolor="#CCCCCC" span style="color: #000000"><TH>Name<TH>Country<TH>email
    <? if (!isSet($_SESSION['mycrm'])) { echo'<TH>Sales';} ?>
    <TH>NS<TH>Cat<TH>Cycle<TH>Level<TH>action
    </TR>
    <TR bgcolor="white"><TD>
    <input type="text" name="nom_famille" value="<?=$_SESSION['nom_famille'];?>" size="15">
     
    <TD><select name="payscontact">
    <option value="critere_non_utilise">  </option>
    <? $listedespays = ExecRequete ("SELECT contact.pays, pays.pays_lib_anglais AS name_pays FROM contact LEFT JOIN pays ON contact.pays = pays.id_pays GROUP BY contact.pays, pays.pays_lib_anglais ORDER BY pays.pays_lib_anglais", $connexion); 
    	  	    while ($pays = mysql_fetch_object($listedespays))
                {
    			if( ($_SESSION['payscontact']!='') AND $pays->pays==$_SESSION['payscontact']){$ct="selected";}
    			print("<option ".$ct." value=".$pays->pays.">".$pays->name_pays."</option>");
    			unset($ct);
    			}
    	?>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    function voleur(e)
    { return false; }
    // Ici la fonction pour désactiver.
     
    function bien()
    { return true; }
     
    document.onselectstart=new Function ("return false");
    if (window.sidebar)
     {
      document.onmousedown=voleur;
     }
    // fin du script -->
    </script>
    Mieux vaut penser avant d'agir que d'agir en rêvant.

  17. #17
    Invité
    Invité(e)
    Par défaut
    le code que j'ai mis est directement exploitable tu n'a qu'a faire un copier coller

    sinon cette ligne veut dire que sa concerne tout le document

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.onmousedown=voleur;
    si tu veut que sa ne concerne que le tableau il serait preferable de retirer cette ligne et de la mettre dans le tableau

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <table onmousedown='voleur()'>

  18. #18
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    Voici qui donne de bons resultats sur ffx ...

    impossible de copier le tableau ... et l'alerte ne se declenche pas ..

    Curieusement sous IE le texte ne semble pas obéir au zindex ...
    si l'on clique ailleurs que sur du texte ça fonctionne, pas d'alert ..
    Par contre si l'on clique sur le texte qui devrait pourtant être en z-index1 il agit si il était au dessus du z-index 100 ??????
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  19. #19
    Membre régulier Avatar de tavarlindar
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 262
    Points : 97
    Points
    97
    Par défaut
    Bonjour mekal,

    Sauf mauvaise implémentation de ma part, cette fonction ne marche pas.

    j'ai mis ce code dans ma page
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <script language="javascript" type="text/javascript" >
    <!-- Debut
    // 
    function voleur(ev){
    (navigator.appName.substring(0,3)=="Mic") ? event.returnValue = false : ev.preventDefault();
    }
     
    // fin du script -->
    </script>
    et suivi ton conseil :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <TABLE  onmousedown='voleur()' BORDER='0' CELLSPACING='2' CELLPADDING='2' >
    cela empêche rien du tout ...
    Mieux vaut penser avant d'agir que d'agir en rêvant.

  20. #20
    Invité
    Invité(e)
    Par défaut
    petit oubli il faut mettre event

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <TABLE  onmousedown='voleur(event)' BORDER='0' CELLSPACING='2' CELLPADDING='2' >

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [XL-2010] Interdire Copier/Coller hors du workbook
    Par seba_stien dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/11/2013, 15h15
  2. interdire Copier/Coller dans un textBox
    Par marocdivers dans le forum C#
    Réponses: 1
    Dernier message: 02/06/2012, 01h38
  3. Interdire des caractères sur un copier-coller
    Par jbrasselet dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 09/02/2012, 09h58
  4. Interdire le copier/coller
    Par SheikYerbouti dans le forum Composants
    Réponses: 3
    Dernier message: 01/02/2011, 10h52
  5. Interdire de déplacier (copier-coller) un fichier ???
    Par beegees dans le forum Autres Logiciels
    Réponses: 6
    Dernier message: 15/03/2006, 21h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo