- · Niveau : DÉBUTANT
- · Compatibilité : IE5+ / NN6+ // Mozilla / Safari
Ouvrir des images ou des photographies dans un «popUp» est une bonne solution. C’est encore mieux quand la grandeur de la fenêtre s’ajuste à celle de l’image. C’est tout à fait possible avec la méthode «resizeTo» et les propriétés «width / heigth» d’une image.
Chacune des images d’un document est emmagasinée dans un tableau (array). document.images[0].width permet de récupérer la largeur de la première image d’un document HTML (il devrait normalement y en avoir une seule). Pour s’assurer que l’image s’installe parfaitement, en tenant compter de la bordure de la fenêtre, je conseil d’ajouter quelques pixels à cette grandeur (au moins 40pixels pour la hauteur).
var nLargeur = document.images[0].width + 10;
var nHauteur = document.images[0].height + 40;
window.resizeTo(nLargeur,nHauteur);
La fonction «twAjustePopUp»
Cette fonction permet de tester, une fois par seconde (setTimeout(’twAjustePopUp()’,1000)), si l’image est belle et bien chargée. Une fois l’image complètement chargée (document.images[0].complete) on ajuste la fenêtre à ses dimensions (window.resizeTo).
function twAjustePopUp() {
// Compatible IE5+ / NN6+ / Mozilla
if (document.images[0].complete) {
window.resizeTo(document.images[0].width+10,document.images[0].height+40);
window.focus();
} else { setTimeout(’twAjustePopUp()’,1000) }
}
La fonction «twPopupImage»
Maintenant, cette fonction s’utilise parallèlement avec une fonction qui ouvre cette «popUp» fenêtre! Alors voiçi le code complet de la fonction «twPopupImage». Elle ouvre principalement une fenêtre de type «popUp» en forçant l’affichage d’une image avec en paramètres, outre le URL de l’image en question, le titre de la fenêtre (title) ainsi que le nom de l’auteur ou autres commentaires à afficher sur l’image (alt et/ou title).
En plus d’ajoute au «popUp» le code qui force son «focus», le clic sur l’image ou encore changer le «focus» fermera automatiquement la fenêtre protégeant ainsi les images.
<html>
<head>
<title<TRUCSWEB.COM - twPopupImage/twAjustePopUp</title>
<script type="text/javascript">
<!--
function twPopupImage(img, titre, auteur) {
// Compatible IE5+ / NN6+ / Mozilla
oFenetre = window.open(’’,’Image’,’width=400,height=400,toolbar=no,scrollbars=no,resizable=no’);
oFenetre.document.write("<html><head><title>"+titre+"</title></head>");
oFenetre.document.write("<script type=\"text/javascript\">function twAjustePopUp() { if (document.images[0].complete) { window.resizeTo(document.images[0].width+10,document.images[0].height+40); window.focus();} else { setTimeout(’twAjustePopUp()’,1000) } }</"+"script>");
oFenetre.document.write("<body onload=’twAjustePopUp()’ onblur=’window.close()’ onclick=’window.close()’ leftMargin=0 topMargin=0 marginwidth=0 marginheight=0>");
oFenetre.document.write("<table width=’100%’ border=’0’ cellspacing=’0’ cellpadding=’0’ height=’100%’><tr><td valign=’middle’ align=’center’>");
oFenetre.document.write("<img src=’"+img+"’ border=’0’ alt=’"+auteur+"’ title=’"+auteur+"’>");
oFenetre.document.write("</td></tr></table></body></html>");
oFenetre.document.close();
}
//-->
</script>
</head>
<body>
<a href="javascript:twPopupImage(’urlImage.gif’, ’TitreFenêtre’,’Photo par Auteur’)">Grand format!</a>
</body>