Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/01/2012, 18h15   #1
Invité de passage
 
Homme
Développeur Web
Inscription : janvier 2012
Messages : 2
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2012
Messages : 2
Points : 1
Points : 1
Par défaut Bug IE9 + window.opener : permission refusée

Bonjour tout le monde,

Voici le souci que je rencontre uniquement avec IE9 (Tous les autres navigateurs : OK).

J'ai une page parent qui me permet d'ouvrir une page enfant via un lien.
A l'ouverture de la page enfant j'initialise une variable de la page parent afin d'avoir dans la page parent la liste des pages enfant ouvertes (dans ce cas une seule).

Si je rafraîchis la page enfant, je n'ai alors plus accès à la variable de la page parent : permission refusée, mais uniquement avec IE9.

L'objectif de cette liste est de me permettre de fermer les fenêtres enfant lorsque je ferme la fenêtre parent.

Quelqu'un a t'il rencontré ce problème ?

Codes exemple:

Page Parent :
Code :
1
2
3
4
5
6
7
8
9
10
11
<html>
<head>
	<title>Parent</title>
	<script type="text/javascript">
		var t_win = new Array();
	</script>
</head>
<body>
	<a href="page_enfant.htm" target="_blank">Clic here</a>
</body>
</html>
Page enfant :

Code :
1
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
<html>
<head>
	<title>Child</title>
	<script>
		var win_parent;
 
		function oneventload()
		{
			if( win_parent == null )
				win_parent = window.opener;
 
			var lg = win_parent.t_win.length;
			var di_o_win = null;
			var okadd = true;
			var _form = null;
			var i = 0;
 
			alert("lg = " + lg) ;
 
			while( i < lg && okadd == true )
			{
				di_o_win = win_parent.t_win[i];
 
				if( di_o_win != null )
				{
					_form = null;
 
					try
					{
						_form = di_o_win.child;
 
						if( _form != null && _form == this )
							okadd = false;
						else
							i++;
					}
					catch(ex)
					{
						i++;
					}
					alert(_form);
				}
				else
					i++;
			}
 
			if( okadd )
			{
				di_o_win = new Object() ;
				di_o_win.child = this ;
				win_parent.t_win.push(di_o_win) ;
			}
		}
	</script>
</head>
 
<body onload="oneventload();" >
	<p>Page enfant</p>
</body>
</html>
Floflo67 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2012, 11h49   #2
Invité de passage
 
Homme
Développeur Web
Inscription : janvier 2012
Messages : 2
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2012
Messages : 2
Points : 1
Points : 1
J'ai trouvé mon problème.

Lorsque j'ouvre la page enfant, le script de la page enfant crée un nouvel Object contenant les informations de la page enfant. Cet objet est ensuite passé en paramètre à la page parent.

Il faut en fait créer cet objet dans un script de la page parent.
Ce qui résout le problème.
Floflo67 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h04.


 
 
 
 
Partenaires

Hébergement Web