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