|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : juin 2004 Messages : 4 ![]() |
Bonjour,
Voilà longtemps longtemps que je ne fais plus du JS et là je suis bloqué. Et vous allez probablement râler, c'est un photographe commanditaire d'un site qui veut absolument bloquer le clic droit. Je lui ai expliqué la facilité à contourner la chose, mais il persiste... Pour limiter les dégâts, je veux interdire le clic droit sur les images en grande taille, contenues dans un <div id="cboxLoadedContent">. Ne voulant pas intervenir (et où ?) dans le plugin php qui génère ce code, je voudrais utiliser un javascript pour rajouter un dans le <div>. Ce qui fonctionne quand je l'introduit dans le div en HTML. Malheureusement le code suivant ne fonctionne pas : Code :
document.getElementById("cboxLoadedContent").oncontextmenu = "return false"; Que faire ? |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Boris Dessysans emploi Inscription : décembre 2010 Messages : 847 ![]() |
De mémoire (pas de pc sous la main pour tester) je dirai :
Code :
document.getElementById("cboxLoadedContent").oncontextmenu = function(){ return false; }; Pour protéger ton image, utilise en plus une url unique avec session, pour que le lien de l'image ne puisse pas être appelé 2 fois. Ça + ton oncontext ça limitera déjà énormément la casse. :-) |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : juin 2004 Messages : 4 ![]() |
Mon problème n'est pas résolu... mais ce que tu m'écris fonctionne bien. Il y a autre chose... je ne sais pas quoi... Je creuse.
|
|
|
00
|
|
|
#4 |
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 802 ![]() |
Même si ta syntaxe devrait logiquement fonctionner, ce n'est manifestement pas fait exprès et la syntaxe de Willpower est la bonne.
Pourquoi ça devrait fonctionner : parce qu'en redéfinissant la propriété oncontextmenu, ben le comportement par défaut est inhibé. En fait, un événement oncontextmenu crée une fonction anonyme, dans ton exemple, cette fonction retourne la chaine de caractères "return false;" et ne fait rien d'autre. Pourquoi ça ne fonctionne pas : parce que tu fais l'affectation sur la div, donc tu inhibes le menu contextuel pour elle, mais tu n'empêches pas la propagation de l'événement (l'équivalent booléen de la chaine de caractères retournée est true
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
|
00
|
|
|
#5 | |
|
Membre Expert
![]() Boris Dessysans emploi Inscription : décembre 2010 Messages : 847 ![]() |
Citation:
Sinon, es tu certain que la propagation ne se fait pas ? Je trouve ça étrange.. Marabbeh > quel est le problème persistant ? |
|
|
|
00
|
|
|
#6 | ||
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 802 ![]() |
Citation:
Ben j'ai eu beau relire, moi je me comprends, ce qui du coup ne me rassure pas du tout ![]() Citation:
Code :
document.getElementById("cboxLoadedContent").oncontextmenu = "return false";
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
||
|
00
|
Copyright © 2000-2012 - www.developpez.com