Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
693 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  javascript desactiver clic droit sur une image

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

javascript desactiver clic droit sur une image

n°1982879
darktroubl​e
Help :p
Posté le 11-04-2010 à 01:39:21  profilanswer
 

Bonjour tout le monde,
 
Voila je cherche a créer un script qui me permettrais d'empêcher le clic droit sur une image et d'afficher un message alert(). La difficulté du probleme vient dans le fait que ce "programme doit s'appliquer seulement une image. En effet j'arrive facilement a bloquer le clic droit sur tout la page et d'afficher un message au passage. Je peux aussi desactiver le clic droit seulement sur les images désirées. Mais je n'arrive pas à faire un mix des deux...
Si jamais une âme charitable voulait bien m'orienter j'en serais plus que ravie.
 
 
Je tiens à preciser que ceci n'est qu'un exercice et en aucun cas je ne cherche à protéger parfaitement les images de mon site, je sais très bien qu'il est impossible de protéger les images d'un site parfaitement.
 
 
Merci d'avance pour votre aide

mood
Publicité
Posté le 11-04-2010 à 01:39:21  profilanswer
 

n°1982889
gatsu35
Blablaté par Harko
Posté le 11-04-2010 à 08:55:45  profilanswer
 

le oncontextmenu ne marche pas sur les images
 
si il marche dans ce cas au lieu de faire un document.oncontextmenu, tu fais un monimage.oncontextmenu = function....


---------------
Blablaté par Harko
n°1982906
darktroubl​e
Help :p
Posté le 11-04-2010 à 11:04:56  profilanswer
 

Le oncontextmenu marche effectivement... Et je met dans la balise image du code html  le on context menu= falsh. Cela me désactivera bien le clic droit juste sur les images... Mais pas de message alert ;)

n°1982911
esox_ch
Posté le 11-04-2010 à 11:16:04  profilanswer
 

Salut,
 
ça sert à quoi ton script? Tu sais qu'avec Firefox tu peux désactiver le JavaScript? Ou lui demander de te montrer les images présentes sur la page dans une liste (à côté de laquelle il y a un bouton "Sauvegarder" ) ?
Non, si tu veux protéger tes images, c'est pas la bonne manière de s'y prendre.. désolé


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1982916
darktroubl​e
Help :p
Posté le 11-04-2010 à 11:34:13  profilanswer
 

Effectivement je sais que pour protéger une image ce n'est pas la bonne idée... Je fais cela pour un projet de développement web pour l'école... Un simple Screenshots permettrait de prendre les images aussi facilement de la même manière.  
Pour les intéressés voila le code pour des désactiver le clic sur UNE seul image mais seulement UNE image... J'ai réussi à activer un petit message d'alert en plus.
 

Citation :


 
 
 <img id="MJ1" src="medias\MJ1.jpeg" title="MJ1" alt="MJ1" onmousedown="alert('Interdit !!');" oncontextmenu="return false;"/>
 
 


 
Maintenant Puis je mettre ça sur TOUTE les images du site sans pour autant copier/ coller onmousedown="alert('Interdit !!');" oncontextmenu="return false;" dans chaque balise image ? :D


Message édité par darktrouble le 11-04-2010 à 11:34:30
n°1982917
esox_ch
Posté le 11-04-2010 à 11:41:49  profilanswer
 

Utilise un langage dynamique (Donc pas PHP).  
Ou bien, tant qu'à faire, fait le avec en Javascript , comme ça t'es sûr que le 1er gugus qui viendra sur ton site, pourra tout pomper :o
 
franchement faudra m'expliquer pourquoi te donner tant de mal pour faire quelque chose d'inutile :heink:


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1982921
darktroubl​e
Help :p
Posté le 11-04-2010 à 12:19:28  profilanswer
 

Je fais ça, car c'est un exercice demandé par le "prof"... Et non pour mon simple plaisir... J'essaye justement de le faire en javascript, mais je n'y arrive pas... Tu ne pourrais pas m'aiguiller?

n°1982926
esox_ch
Posté le 11-04-2010 à 12:54:22  profilanswer
 

Oui, regarde comment écrire des balises HTML avec JS.
Vous avez le droit d'utiliser des lib JS (prototype & co ) ?


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1982943
darktroubl​e
Help :p
Posté le 11-04-2010 à 15:05:43  profilanswer
 

euh en fait, il nous a bien expliqué que tout ce qu'on faisait maintenant ne serais plus obligatoire ensuite, car les librairies javascript simplifient tout le travail...  
 
 
Je pense qu'il préfèrerai des programmes type:
 
 
 
 

Citation :


 
function afficherMessage(message)
{
 
alert('voici le message: '+message);
 
}


 
D'ailleur je n'ai jamais utilisé une seul librairie Javascript... Mas si tu as une solution comme ca, je suis preneur aussi

n°1982947
esox_ch
Posté le 11-04-2010 à 15:18:37  profilanswer
 

Bah c'est toi qui voit hein :o
Si tu as la possibilité d'utiliser un framework JS (http://www.prototypejs.org/ par exemple), fait le, ça va pas mal te simplifier la vie.
 
Maintenant, ce que tu veux faire n'est pas bien compliqué, donc même sans sortir l'artillerie lourde, tu vas t'en sortir..
 
Regarde sur le net comment on fait pour lancer une fonction lors du chargement d'une page, ensuite regarde comment on utilise la fonction "write" de Javascript, ensuite tu pourras faire une fonction qui, lorsque qu'elle est chargée, ajoute ton bout de code à chaque balise img.
 
Par contre, on est bien d'accord, tu n'as pas accès à des langages dynamiques (PHP, Ruby, Python,...) sur ton serveur? Ni accès aux XSLT?


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
mood
Publicité
Posté le 11-04-2010 à 15:18:37  profilanswer
 

n°1982949
darktroubl​e
Help :p
Posté le 11-04-2010 à 15:37:15  profilanswer
 

1/ Pour lancer une fonction au chargement de la page, pas de soucie:
 

Citation :


Nom_De_La_Fonction();


 
dans la code javascript ( sur un fichier par exemple: site.js)
Puis dans le header de  la page html je l'apelle, ( par exemple: <script type="text/javascript" src="javascript/site.js"></script> )
 
 
 
2/ Fonction write ? ne la comprend pas.
 
 
3/ Code du programme ? Alert('No clic droit') et oncontextmenu="false"; G juste ca à mettre dans le corp du programme?

n°1982952
esox_ch
Posté le 11-04-2010 à 16:05:48  profilanswer
 

Écoute, cherche un peu par toi même. Regarde cette bon dieu de documentation ( cadeau : http://www.w3schools.com/JS/js_howto.asp )
 
Une fois que t'as quelque chose à faire voir, reviens et on en discute ensemble.


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°2162177
shine458
Posté le 01-11-2012 à 13:07:32  profilanswer
 

Voila ce que j'utilise :
 

Code :
  1. HTML
  2. <div id="ct_img"></div>
  3. JAVASCRIPT
  4. $('#ct_img').append('<div class="copyright fil" style="background:url(img/image1.jpg) no-repeat;width:553px;height:367px;"></div>');
  5. $('#ct_img').append('<div class="copyright fil" style="background:url(img/image2.jpg) no-repeat;width:553px;height:368px;"></div>');
  6. $('#ct_img').append('<div class="copyright fil" style="background:url(img/image3.jpg) no-repeat;width:246px;height:370px;"></div>');
  7. $('.copyright').bind('contextmenu', function(e) {
  8.   e.preventDefault();
  9.   alert('Buy it motherfucker !');
  10. });


 
Je précise que j'ai utilisé jQuery mais on pourrait tout aussi bien le faire en javascript natif avec les events listeners
Avantages de cette méthode :
- Les images ne sont pas enregistrable avec un clique doit
- Pas sauvegarde avec une Ctrl + S du navigateur (car elle ne sont pas "en dur", ni même dans le DOM elle sont incrusté en image de fond d'une <div> et non avec une balise <img /> )
- Non présente dans le code source (car injectées en javascript dans le DOM après chargement du HTML).
- La méthode "je désactiver le javascript et recharge la page" pour pouvoir neutraliser le script ne pourra pas marcher ici car les images sont injectées en js, donc si on desactive le js, les images n'apparaissent plus ;)
 
Désavantages :
- Plus de réf pour les images (car pas dans le code source).
- Les images peuvent prendr un peu + de temps à etre chargée, car il faut attendre que le js s'execute.
- Il reste toujours la solution du screen-shot (mais cela prend beaucoup + de temps et peux occasionner une perte de qualité)
- On peut également toujours utiliser un outil comme firebug et aller chercher dans le DOM construit avec le javascript, mais cela prend beaucoup + de temps et demande un min de connaissance info
- Il faut préciser les dimension de chaque photo coté serveur (en php par ex).
 
A vous de voir, vous n'etes pas obligé de tout utiliser (désactiver le clique droit sera suffisant dans la majorité des cas car peu de gens savent aller plus loin. Si n se borne uniquement à ca cela permettra de conserver le référencement).
 
Code pour uniquement désactiver le clique droit :
 

Code :
  1. HTML
  2. <img class="copyright" src="img/image1.jpg" alt="" />
  3. JAVASCRIPT
  4. $('.copyright').bind('contextmenu', function(e) {
  5.   e.preventDefault();
  6.   alert('Buy it motherfucker !');
  7. });


---------------
Si ca sonne bien c que c bien

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  javascript desactiver clic droit sur une image

 

Sujets relatifs
Traitement d'imageDéveloppement outil permissions NTFS fichiers
un menu contextuelle(JpopMenu) avec click à droitAide effet Toggle Javascript
Dreamweaver : mettre une image de fond derriere un titreAffichage Javascript dans JSP
mon image ne s'affiche pasGolive: Position d'image
creation panier en javascript 
Plus de sujets relatifs à : javascript desactiver clic droit sur une image


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR