[Aide] Erreur de javascript ...

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 !
GregK84
Lézard à collerette
Messages : 360
Inscription : 15 oct. 2004, 15:24

[Aide] Erreur de javascript ...

Message par GregK84 »

Salut,

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 ...

Code : Tout sélectionner

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
}
et on appelle la fonction de cette façon :

Code : Tout sélectionner

<a href="javascript:js_fct_miniature('<?php print($id); ?>')">Mon image</a>
Firefox,
Time for the hunted to be the hunter.

Config : WinXp, FF 1.0, TB 1.0, SB 0.2.
martin
Varan
Messages : 1074
Inscription : 21 janv. 2004, 16:23

Message par martin »

essaie un truc du genre (j'ai pas testé) :

Code : Tout sélectionner

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
} 
GregK84
Lézard à collerette
Messages : 360
Inscription : 15 oct. 2004, 15:24

Message par GregK84 »

ton code fonctionne sur tout les navigateurs, mais j'ai le meme probleme avec internet explorer.

il me marque que cette ligne pose probleme. si je l'efface, il me refait une erreur a la meme ligne, mais il s'agit du '}' qui pose probleme.

l'erreur c'est un argument non valide
martin a écrit :essaie un truc du genre (j'ai pas testé) :

Code : Tout sélectionner

   if (win.window.focus){win.window.focus();}; // on donne le focus
} 
Firefox,
Time for the hunted to be the hunter.

Config : WinXp, FF 1.0, TB 1.0, SB 0.2.
Mirovinben
Lézard vert
Messages : 194
Inscription : 13 nov. 2004, 08:54

Message par Mirovinben »

:shock: en résumé : si "focus" alors "focus" ??!!... étrange...

ma proposition :

Code : Tout sélectionner

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...
GregK84
Lézard à collerette
Messages : 360
Inscription : 15 oct. 2004, 15:24

Message par GregK84 »

merci je vais essaye ca
Firefox,
Time for the hunted to be the hunter.

Config : WinXp, FF 1.0, TB 1.0, SB 0.2.
GregK84
Lézard à collerette
Messages : 360
Inscription : 15 oct. 2004, 15:24

Message par GregK84 »

ca ne fonctionne tjr pas :(
Firefox,
Time for the hunted to be the hunter.

Config : WinXp, FF 1.0, TB 1.0, SB 0.2.
Mirovinben
Lézard vert
Messages : 194
Inscription : 13 nov. 2004, 08:54

Message par Mirovinben »

GregK84 a écrit :ca ne fonctionne tjr pas :(
:shock: 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 :wink:
Bienheureux les fêlés car ils laissent passer la lumière...
martin
Varan
Messages : 1074
Inscription : 21 janv. 2004, 16:23

Message par martin »

:shock: en résumé : si "focus" alors "focus" ??!!... étrange...
Bien vu :oops: 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.
GregK84
Lézard à collerette
Messages : 360
Inscription : 15 oct. 2004, 15:24

Message par GregK84 »

je tourne avec ie 6 sp2 (sans l'antispyware)

cela ne fonctionne tjr pas :(
vous voulez que je face une capture d'écran du message d'erreur ?
Firefox,
Time for the hunted to be the hunter.

Config : WinXp, FF 1.0, TB 1.0, SB 0.2.
martin
Varan
Messages : 1074
Inscription : 21 janv. 2004, 16:23

Message par martin »

je tourne avec ie 6 sp2
Et si tu désactives le bloqueur de popup intégré ?
GregK84
Lézard à collerette
Messages : 360
Inscription : 15 oct. 2004, 15:24

Message par GregK84 »

je viens essaye et cela ne marche pas non plus :(

Voici le message d'erreur :

Image

Et la fonction est sur la ligne 1 :

Code : Tout sélectionner

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();
}
Firefox,
Time for the hunted to be the hunter.

Config : WinXp, FF 1.0, TB 1.0, SB 0.2.
Invité

Message par Invité »

martin a écrit :

Code : Tout sélectionner

 if (win.window.focus){win.window.focus();}; // on donne le focus
Mirovinben a écrit : :shock: 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 :roll:
Mirovinben
Lézard vert
Messages : 194
Inscription : 13 nov. 2004, 08:54

Message par Mirovinben »

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... :wink:

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 :D !!
Bienheureux les fêlés car ils laissent passer la lumière...
martin
Varan
Messages : 1074
Inscription : 21 janv. 2004, 16:23

Message par martin »

:oops: :oops: merci invité de permettre à Mirovinben de m'en remettre une deuxième couche ... :lol:

Bon, il était tard quand j'ai proposé ce bout de code (c'est moyen comme excuse, mais j'en trouve pas d'autre pour l'instant)
Invité

Message par Invité »

Ceci

Code : Tout sélectionner

if (window.focus) {...}
ne retourne pas l'état du focus de la fenêtre mais l'état de l'implémentation de la fct dans le browser !!!

nan :?:
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 2 invités