Forums d'assistance et de discussion sur les logiciels produits par Mozilla ou créés à partir des technologies Mozilla. Ce site ne dépend pas de la fondation Mozilla et est maintenu par un collectif de bénévoles.
HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
J'ai écris une fonction javascript pour ouvrir et centrer une popup au milieu de l'écran.
Cette fonction fonctionne sur Mozilla, Firefox, Netscape, Opera ... sauf sur Internet Explorer.
Malheureusement, je ne trouve pas l'erreur ...
function js_fct_miniature(id) {
w = 540; // Largeur
h = 380; // Hauteur
var path = 'index.php?fuseaction=gallery.popup&id=' + id; // URL du fichier
var win = window.open(path, 'Texte de la nouvelle', 'toolbars=no,scrollbars=yes,width=' + w + ',height=' + h + ',resizable=no'); // paramettre de la popup
win.focus(); // on donne le focus
var posX = (window.screen.width/2) - (w/2); // on détermine la largeur
var posY = (window.screen.height/2) - (h/2); // on détermine la hauteur
win.moveTo(posX,posY); // on affiche la fenêtre
}
function js_fct_miniature(id) {
var w = 540; // Largeur
var h = 380; // Hauteur
var path = 'index.php?fuseaction=gallery.popup&id=' + id; // URL du fichier
var posX = (window.screen.width/2) - (w/2); // on détermine la largeur
var posY = (window.screen.height/2) - (h/2); // on détermine la hauteur
var win = window.open(path, 'Texte de la nouvelle', 'width=' + w + ',height=' + h + ',top='+posY+',left='+posX+',toolbars=no,scrollbars=yes,resizable=no'); // parametre de la popup
if (win.window.focus){win.window.focus();}; // on donne le focus
}
iHtr = hauteur de ta fenêtre popup
iLrg = largeur de ta fenêtre popup
iNom = nom de ta fenêtre
Htm = contenu de ta page à mettre dans le popup
function Wopen(Htm){
var iTop=((screen.height-iHtr)/2);
var iGch=(screen.width-iLrg)/2;
var fen=window.open(Htm,iNom,'top='+iTop+',left='+iGch+',width='+iLrg+',height='+iHtr);
fen.focus();
}
Rien ne t'emêche d'ajouter d'autres paramètres (resize, status)...
sinon je t'invite à aller faire un tour ici où tu trouveras un certain nombre de routines que j'ai écrites (complètement ou adaptées)... et elles fonctionnent sous IE comme sous FF...
Bienheureux les fêlés car ils laissent passer la lumière...
Etrange... c'est qu'il y autre chose qui bloque car ma proposition est extraite de mes librairies... et je les utilise dans mes différents sites perso depuis pas mal de temps...
Tu peux tester sur ce site perso (le WWW en bas de mes posts) (clique sur une photo en vignette dans un de mes albums-photo et tu ouvres en popup centré la photo en 600x450) Il n'est pas très à jour because l'hiver ne m'a pas inspiré mais tu peux y faire un tour quand même
Bienheureux les fêlés car ils laissent passer la lumière...
en résumé : si "focus" alors "focus" ??!!... étrange...
Bien vu win.window.focus(); suffit amplement...
Bon au pif toujours, est ce tu utilises IE6 sp2 avec son anti popup intégré (que je n'ai pas) ? Peut être a t'il des réglages que je ne connais pas et qui bloque le(s) scripts.
function js_fct_miniature(id) {
var w = 540;
var h = 380;
var path = 'index.php?fuseaction=gallery.popup&id=' + id;
var posX = (window.screen.width/2) - (w/2);
var posY = (window.screen.height/2) - (h/2);
var win = window.open(path, 'Texte de la nouvelle', 'width=' + w + ',height=' + h + ',top='+posY+',left='+posX+',toolbars=no,scrollbars=yes,resizable=no');
win.window.focus();
}
if (win.window.focus){win.window.focus();}; // on donne le focus
Mirovinben a écrit : en résumé : si "focus" alors "focus" ??!!... étrange...
pour ton info, Mirovinden ce genre de test (if (win.window.focus)) est sensé soit retourner vrai si la fonction existe et donc dans cet exemple l'appeler; soit retourner faux si elle n'existe pas... (forcement)
Un peu comme faire de la détection de browser à l'aide de if (document.all) et if (document.getElementById)
méthode efficace mais non préconisée
Anonymous a écrit :pour ton info, Mirovinden ce genre de test (if (win.window.focus)) est sensé soit retourner vrai si la fonction existe et donc dans cet exemple l'appeler; soit retourner faux si elle n'existe pas... (forcement)
Voui, chui au courant ! sauf que s'il faut tester l'existence de chaque fonction avant de l'exécuter on n'a pas fini...
Pour info
-1- windows.focus est supporté depuis Javascript 1.1, Netscape 3 et Internet Explorer 4...
-2- le bout de code qui m'interpelle veut exactement dire ceci : si la fenêtre a le focus, on lui donne le focus... étonnant non ? Et si la fenêtre ne l'a pas... on ne lui donne pas !... épatant comme test !!
Bienheureux les fêlés car ils laissent passer la lumière...