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 :

document.onmousedown=disableselect mozilla


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 32
    Points : 17
    Points
    17
    Par défaut document.onmousedown=disableselect mozilla
    Bonjour, j'ai placé sur mon site un petit code trouvé pour empecher les selections et copiés/collés et le clic droit pour empecher de voir le code source. ça marche trés bien sous ie et mozilla, mais là je viens de m'apercevoir que sur les pages de mon site où il y'a un formulaire il m'est impossible de taper des mots dans le formulaire. ça marche sous IE, mais mozilla lui par contre bloque les saisies clavier dans les formulaires à cause de la ligne document.onmousedown=disableselect

    Donc je voudrai savoir si il y'a une alternative sous mozilla. Faire que le scripte fonctionne mais sans bloquer les saisies dans les formulaires.

    Merci

    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
    <SCRIPT LANGUAGE="JavaScript">
    function disableselect(e){
    return false
    }
    function reEnable(){
    return true
    }
    //if IE4+
    document.onselectstart=new Function ("return false")
    document.oncontextmenu=new Function ("return false")
    //if NS6
    if (window.sidebar){
    document.onmousedown=disableselect
    document.onclick=reEnable
    }
    //-->
    </script>

  2. #2
    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 640
    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 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    ce genre de protection est absolument inutile ...

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 32
    Points : 17
    Points
    17
    Par défaut
    si, ça marche plutot bien, en tout cas dissuasif pour les petits curieux. C'est suffisant en ce sens en tout cas. Même si ça n'apporte aucune réelle protection.

    J'ai trouvé un autre code, que j'ai ajusté, et visiblement cette fois tout fonctionne. Je le met si cela peut-être utile


    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    <script language="javascript">
     var omitformtags=["input", "textarea", "select"]
     
    function disableselect(e){
     for (i = 0; i < omitformtags.length; i++)
     if (omitformtags[i]==(e.target.tagName.toLowerCase()))
     return;
     return false
     }
     
    function reEnable(){
     return true
     }
     
    function noSelect(){
     if (typeof document.onselectstart!="undefined"){
     document.onselectstart=new Function ("return false")
     document.oncontextmenu=new Function ("return false")
     if (document.getElementsByTagName){
     tags=document.getElementsByTagName('*')
     for (j = 0; j < tags.length; j++){
     for (i = 0; i < omitformtags.length; i++)
     if (tags[j].tagName.toLowerCase()==omitformtags[i]){
     tags[j].onselectstart=function(){
     document.onselectstart=new Function ('return true')
     }
     tags[j].onmouseup=function(){
     document.onselectstart=new Function ('return false')
     }
     }
     }
     }
     }
     else{
     document.onmousedown=disableselect
     document.onmouseup=reEnable
     document.oncontextmenu=disableselect
     }
     }
     
    window.onload=noSelect;
     </script>

  4. #4
    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 640
    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 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    dissuasif de rien du tout ... file moi l'adresse de ton site et je te récupère l'intégralité du contenu, des script des images etc ...

    Pour afficher une page le navigateur doit bien avoir du code à interpréter.
    Et les images sont dans le cache ...
    Donc c'est juste une perte de temps.
    SI tu ne veux pas que des curieux voient les code ou les images, ne mets pas tes pages en ligne

  5. #5
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 060
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 060
    Points : 44 585
    Points
    44 585
    Par défaut
    et le clic droit pour empecher de voir le code source.
    sans compter le CTR +U

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 132
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 132
    Points : 1 418
    Points
    1 418
    Par défaut
    Salut,

    Il y a aussi la touche "menu contextuel" sur les claviers windows


    Sinon pour répondre à ton problème tu peux ne pas renvoyer "false" si le target de l'évènement est un INPUT/SELECT/TEXTAREA et tout autre élément que tu veux ne pas protéger.

    devyan

    P.S. : j'insiste tout de même sur le fait que je suis entièrement d'accord avec SpaceFrog sur l'utilisation espérée de ce type de code.

  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
    J'ai trouvé un autre code
    trouver un code et considérer qu'il est efficace est une façon désastreuse d'envisager les choses !

    Je le met si cela peut-être utile
    ce n'est certainement pas utile puisque c'est complètement inefficace !!!
    Si tout le monde ne connait pas forcément toutes les techniques simples pour contourner cette "fonctionnalité", ils en connaissent certainement au moins une :
    • désactiver JavaScript ;
    • utiliser le menu du navigateur au lieu du clic droit ;
    • les différentes possibilités de faire un "Enregistrer sous...".


    Bien entendu, beaucoup d'autres possibilités existent qui doivent forcer à éviter de perdre son temps pour ce genre de non protection !

  8. #8
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Remarque:
    <script language="javascript">
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script type="text/javascript">

  9. #9
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Points : 6 755
    Points
    6 755
    Par défaut
    Si ton objectif est de rendre inaccessible ton code source, tu peux toujours l'obfusquer mais c'est une pratique que je ne cautionne pas.

    D'ailleurs j'ai lu récemment sur ce forum quelqu'un qui faisait remarquer que la compilation d'un programme en code binaire n'est, finalement, qu'une obfuscation très poussée… Mais je m’égare ^^

    JavaScript est par essence un langage visible, public, exposé. Il est téléchargé puis exécuté sur la machine client. Son but est d'améliorer le site, non d'y apporter des fonctions essentielles (et ça, beaucoup de développeurs web semblent l'avoir oublié). Ainsi, si tu ne veux pas que ton code source soit public, opte pour un autre langage, qui s'exécute sur le serveur (par exemple PHP), ou bien une solution propriétaire (qui souvent ne respecte pas les standards d'accessibilité) à base d'objets pré-compilés tels que Flash. Et il te faudra renoncer aux avantages de JavaScript : l'interactivité de la page, ou la facilité de maintenance.

Discussions similaires

  1. document.queryCommandState() erreur Mozilla
    Par xess91 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 12/12/2011, 18h23
  2. Question sur document.onmousedown
    Par Matgic95 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 05/01/2007, 16h26
  3. Documentation gratuite sur l'API Windows, COM, DCOM, OLE, etc.
    Par Community Management dans le forum Windows
    Réponses: 1
    Dernier message: 16/11/2006, 15h28
  4. Probleme avec mozilla et document.getElementById...
    Par cerede2000 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 09/05/2006, 21h46
  5. [Mozilla] document.getElementById(var) has no properties
    Par dys_ dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 14/11/2005, 15h33

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