11550 sujets

JavaScript, DOM et API Web HTML5

Bonjour

Un petit script s'execute bien sous IE mais pas sous FF... il semble que par defaut...?! FF deconnecte le JS... ya t il un moyen de forcer FF à ouvrir mon script...?

Ce script est placé avant </body>
si besoin code ci dessous...

Merci pour votre aide...


<script type="text/javascript">
<!--
var clickmessage= 
"Image protégée" 
function disableclick(e) 
{if (document.all) 
{if (event.button==2||event.button==3) 
{if (event.srcElement.tagName=="IMG") 
{alert(clickmessage); 
return false;}}} 
if (document.layers) 
{if (e.which == 3) 
{alert(clickmessage); 
return false;}}} 

function associateimages() 
{for(i=0;i<document.images.length;i++) 
document.images[i].onmousedown=disableclick;} 
if (document.all) 
document.onmousedown=disableclick 
else if (document.layers) 
associateimages() 
//-->
</script>
[/i]
Retire déjà tes tags de commentaires, ensuite regarde ta console (firebug) pour essayer de voir un message d'erreur.
OK c'est fait, alors j'ai pas de message d'erreur lié a ce code JS, mais sur firebug, ce sont les seules lignes ou les numeros a gauche sont en vert... je ne sais pas si ca peut aider...
Essaie ceci

<script type="text/javascript"">
var clickmessage="Image protégée"  

function disableclick(e) {
if (document.all) {
if (event.button==2||event.button==3) {
if (event.srcElement.tagName=="IMG"){
alert(clickmessage);
return false;}
}
}
else if (document.layers) {
if (e.which == 3) {
alert(clickmessage);
return false;
}
}
else if (document.getElementById){
if (e.which==3&&e.target.tagName=="IMG"){
alert(clickmessage)
return false
}
}
}
function associateimages(){
for(i=0;i<document.images.length;i++)
document.images[i].onmousedown=disableclick;
}
if (document.all)
document.onmousedown=disableclick
else if (document.getElementById)
document.onmouseup=disableclick
else if (document.layers)
associateimages()
</script>
[/i]
Modifié par paolo (01 Jan 2011 - 20:45)
Merci Paolo pour ton temps,

alors il y a du mieux, la boite "image protégée" s'ouvre mais quand je clique sur OK, le menu du clic droit s'ouvre...? Smiley eek

... si tu as une idée du problème ? sinon j'ai peut etre une autre solution qui est de superposer 2 images avec la photo en arrière plan, et en premier plan un fond transparent...

efficace selon toi ?

merci encore
Désolé, je n'ai pas la solution.

J'aurais du commencer par là : interdire ce genre d'action à l'utilisateur est une mauvaise pratique inefficace.

Si tu veux protéger tes contenus, avertis le visiteur des droits d'utilisation (qui peuvent être cédés à un tarif dissuasif) ou, mieux, en les plaçant sous une des licences creative commons.

Pour en revenir au clic droit, une solution plus efficace est d'utiliser la technique que flickr employait (peut être encore aujourd'hui) : un div transparent positionné au dessus de l'image.
Ca a le mérite de se passer de js et d''être crossbrowser.
Je vais utiliser les 2 pour IE et seulement le div transparent pour FF, je trouvais que le message JS faisait plus professionnel... mais ca ira quand meme !

le résultat est en ligne sur www.flat69.fr

Merci d'avoir essayé et bonne continuation !
Modifié par GT3 (02 Jan 2011 - 11:55)