Bon, en fait c'est tout à fait possible de relier deux fenetres, pourvu qu'elles soient préparées toutes les deux avec un mécanisme de callback.
test1.htm :
<html>
<head>
<script>
var lect;
function NewWin() {
lect = window.open('popup.htm','fenetre','');
}
function ChangePopup() {
lect.document.getElementById('toto').value = "Interaction Page1 Ok";
}
</script>
</head>
<body>
Page 1<br/>
<input type="button" onclick="NewWin()" value="Ouverture PopUp"/><br/>
<input type="button" onclick="ChangePopup()" value="Agir sur la popup"/>
<br/><br/>
<a href="test2.htm">Page 2</a>
</body>
</html>
|
popup.htm :
<html>
<head>
<script>
function attachMe() {
window.opener.DeclarationPopup(window);
document.getElementById('link').innerHTML = "Cette page est maintenant liée à la popup";
}
</script>
</head>
<body>
Popup<br/>
<input type="text" id="toto" value="Pas de texte"/>
<input type="button" onclick="attachMe();" value="Lier à test2.htm"/><br/>
<div id="link"></div>
</body>
</html>
|
test2.htm :
<html>
<head>
<script>
var lect;
function DeclarationPopup(popup) {
lect = popup;
document.getElementById('link').style.display = "block";
}
function ChangePopup() {
lect.document.getElementById('toto').value = "Interaction Page2 Ok";
}
</script>
</head>
<body>
Page 2 - Cette page n'est pas liée à la popup<br/>
<div id="link" style="display:none">
Cette page est maintenant liée à la popup<br/>
<input type="button" onclick="ChangePopup()" value="Agir sur la popup"/>
</div>
</body>
</html>
|
Oky, maintenant quelques explications :
- La page 1, c'est la fenetre parente qui va ouvrir la popup. Elle peut naturellement agir sur la popup.
- Ensuite si tu vas sur la page 2 (test2.htm), tu n'a à priori aucun accès à la popup. Il faut donc qu'elle déclare son existence à test2.htm.
- En cliquant sur 'Lier à test2.htm', les deux pages sont reliées et tu peux de nouveau agir sur la popup.
Ensuite, tu peux améliorer tout ca pour que le visiteur n'ait pas à cliquer sur un bouton pour réactiver quoique ce soit. Avec des onLoad, onUnload, setTimeout, etc...ca devrait être possible.
---------------
Sonnerie polyphonique - Sonnerie Hi-Fi - Sonnerie Ultrason