Salut,
En réponse à une demande d'un de nos confrères dans un post HTML/CSS je vous fais part de ma dernière trouvaille concernant l'utilisation de showModalDialog qui fonctionne sous IE,NN,FF,OPERA et SAFARI.
J'espère que ça vous sera utile...
Le code source est composé de 4 éléments :
- fichier javascript Include (à télécharger)
- La fonction qui dérive showModalDialog en fonction du navigateur
- fonction appelante
- dérivation de la fonction qui permet de renvoyer la valeur à la fenêtre appelante à l'aide de window.returnValue depuis la fenêtre appelée.
Etape 1 : Fichier include côté navigateur
Télécharger le fichier include suivant : http://www.ezlogic.mc/_Includes/scripts/dialog.js
Placez le dans le répertoire dans lequel vous rangez vos scripts puis, faites une référence à ce fichier en utilisant la balise (je précise que c'est un code source que j'ai récupéré sur le net mais que j'ai du modifier pour qu'il fasse exactement ce que je souhaitais):
C'est grace à la fonction dialog que je gère le focus de la fenêtre ouverte.
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
Etape 2 : Dérivation de la fonction showModalDialog
Cette technique permet de toujours utiliser la fonction showModalDialog sur tous les navigateurs (et c'est bien pratique).
Comme vous pourrez le constater, j'analyse les paramètres passés à la fonction showModalDialog et je les convertis pour qu'ils correspondent aux paramètres de la fonction open.
Etape 3 : La fonction appelante
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
Etape 4 : La valeur de retour
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9/* URL de la fenêtre appelée (notez que les paramètres sont passés en GET*/ var szURL="../dlgQte.asp?Mode=<%=Mode%>&CodeLangue=<%=CodeLangue%>&Valeur=" + ValeurInitRecupCoteClient RV = window.showModalDialog(szURL,null,"scroll:no;center:yes;help:no;dialogWidth:200px;dialogHeight:160px;resizable:no"); if (RV){ //Uniquement pour IE, pour les autres navigateurs ça se passe dans la fenêtre appelee window.document.frm.hidQte.value = RV window.document.frm.submit(); }
Voilà... avec ça vous devriez y arriver.
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
J'apprécierais que l'on poste toutes les améliorations que vous pourriez y apporter sur ce thread.
@+
Laurent Jordi

 

 
		
		 
        


 [Code source] showModalDialog Cross Platform Enfin !
 [Code source] showModalDialog Cross Platform Enfin !
				 Répondre avec citation
  Répondre avec citation
Partager