Forum de discussion
Forum « Programmation Javascript » (archives)
exécuter javascript depuis page parent sur popup image enfant [reposté]
Envoyé: 16 février 2005, 14h44 par kireip
Faisant mes premiers pas en javascript, mes compétences s'avèrent très limitée avec ce language - ainsi qu'avec la programmation en général d'ailleurs ;)
Mon problème actuel est le suivant : j'essaie de fusionner deux scripts, l'un permetant d'ouvrir une image dans un popup (dimensions automatiques, possibilité d'éditer le titre de la fenêtre, disposition x,y) et l'autre désactivant le clic droit dans le navigateur (NS et IE), cela afin de désactiver la possibilité de clic droit dans la fenêtre parent ainsi que dans celle enfant (PopUp image) où s'ouvre l'image.
Vu que la fenêtre popup n'ouvre pas une page HTML mais une image, j'essaie d'exécuter le script sur la fenêtre popup générique depuis la page HTML parent (j'ai choisi ce système car j'ai une trop grosse quantité d'images à gérer).
Le script fonctionne très bien sous Netscape et Firefox (le clic droit est désactivé sur la page parent comme sur l'image ouverte en popup) mais le hic apparaît sous Internet Explorer : le clic sur la page parent est désactivé mais pas sur la popup enfant.
Sous l'angle javascript ça donne quelque chose du genre :
******** dans la partie <HEAD> (parent) ********
var surface,nexus,failles,hybricite;
var message="";
// --> source DESACTIVE CLIC DROIT
function clickIE() {
if (document.all) {(message);return false;}}
function clickNS(e) {
if (document.open.layers||(document.open.getElementById&&!document.all)) {
if (e.which==2||e.which==3) {(message);return false;}}}
// --> source OUVRIR IMAGE dans POPUP (openPictureWindow Fever! v4.01)
function openPictureWindow_Fever(imageType,imageName,imageWidth,imageHeight,alt,posLeft,posTop) {
newWindow = window.open("","newWindow","width="+imageWidth+",height="+imageHeight+",scrollbars=no,left="+posLeft+",top="+posTop);
newWindow.document.open();
newWindow.document.write('<html><title>'+alt+'</title><body bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginheight="0" marginwidth="0" onBlur="self.close()">');
if (imageType == "swf"){
newWindow.document.write('<object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0\" width=\"'+imageWidth+'\" height=\"'+imageHeight+'\">');
newWindow.document.write('<param name=movie value=\"'+imageName+'\"><param name=quality value=high>');
newWindow.document.write('<embed src=\"'+imageName+'\" quality=high pluginspage=\"http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash\" type=\"application/x-shockwave-flash\" width=\"'+imageWidth+'\" height=\"'+imageHeight+'\">');
newWindow.document.write('</embed></object>'); }else{
newWindow.document.write('<img src=\"'+imageName+'\" width='+imageWidth+' height='+imageHeight+' alt=\"'+alt+'\">'); }
newWindow.document.write('</body></html>');
newWindow.document.close();
newWindow.focus();
// --> fusion avec DESACTIVE CLIC DROIT
if (newWindow.document.layers)
{newWindow.captureEvents(Event.MOUSEDOWN);newWindow.document.onmousedown=clickNS;}
else{newWindow.document.onmouseup=clickNS;newWindow.document.oncontextmenu=clickIE;}
newWindow.document.oncontextmenu=new Function("return false")
}
******** et dans la partie <body> (parent) ********
<a href="javascript:;" onClick="openPictureWindow_Fever('jpg','bla/bla/image.jpg','425','425','titre de l'image','15','150')"><img src="bla/bla/image_lien.jpg" width="50" height="50" border="0"></a>
Vu mon niveau plutôt médiocre, je pense que le problème viens d'une mauvaise syntaxe ou d'un paramètre mal adapté... mais lequel? :°
Si quelqu'un à la bonté de se pencher sur mon cas il m'enleverrai une bonne épine du clavier...
PS : je sais que le fait de désactiver le clic droit n'est qu'un moyen de "surface" pour protéger des données mais bon c'est déjà ça de sauvé...
merci
Réponses
|