Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1231 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Résolu [Javascript] Agir dans Popup après fermeture de la fenetre mère

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Résolu [Javascript] Agir dans Popup après fermeture de la fenetre mère

n°1439407
BaDaBoOm
Posté le 09-09-2006 à 04:11:21  profilanswer
 

Salut à tous,
 
j'utilise sur mon site un système de popup pour lancer un lecteur mp3 flash, ceci permet de continuer la navigation sans couper la musique.
 
le système fonctionne bien lorsque je commande la popup depuis la page mère :
je peux lancer des morceaux et en ajouter à la playlist.
 
pour cela j'utilise un code simple de ce type :
 

Code :
  1. <script type="text/javascript">
  2.  <!--
  3.  function Jouer(idmp3) {
  4.  lect=window.open('lecteur.php?idmp3='+idmp3, "fenetre", "width=400,height=200,scrollbars" );
  5.  }
  6.  function Ajouter(idmp3) {
  7.  lect.message2JavascriptToFlash(idmp3);
  8.  }
  9.  //-->
  10. </script>


 
Le problème se pose lorsque je quitte la page mère : je n'ai plus accès à la fenetre popup, je ne peux donc plus ajouter de morceaux a la playlist.
 
Ma question est donc comment réacquérir ou comment avoir de nouveau accès à la popup.
 
Merci pour votre aide.


Message édité par BaDaBoOm le 10-09-2006 à 21:52:19
mood
Publicité
Posté le 09-09-2006 à 04:11:21  profilanswer
 

n°1439410
BaDaBoOm
Posté le 09-09-2006 à 07:10:32  profilanswer
 

up

n°1439448
BaDaBoOm
Posté le 09-09-2006 à 11:22:25  profilanswer
 

up

n°1439552
BaDaBoOm
Posté le 09-09-2006 à 17:50:05  profilanswer
 

up


Message édité par BaDaBoOm le 09-09-2006 à 17:52:39
n°1439599
nargy
Posté le 10-09-2006 à 00:25:35  profilanswer
 

du calme sur les ups :o
 
en gros: tu peux plus.
 
donc tu dois revoir ton design, comme par exemple ajouter le gestionnaire de playlist au popup.

n°1439632
CNeo
Posté le 10-09-2006 à 09:21:36  profilanswer
 

nargy a écrit :

en gros: tu peux plus.


S'il supprime sont dernier message et qu'il en met un autre après normalement il peut. [:airforceone]  
Après j'ai jamais essayé. :D


Message édité par CNeo le 10-09-2006 à 09:22:06
n°1439638
nargy
Posté le 10-09-2006 à 10:23:19  profilanswer
 

ben, le problème est que la fenêtre parente est fermée, le navigateur va empêcher de toutes façons à toute autre fenêtre qu'une fenêtre parente de modifier le popup -- question sécurité.

n°1439684
sho320
Posté le 10-09-2006 à 13:33:42  profilanswer
 

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  
n°1439734
BaDaBoOm
Posté le 10-09-2006 à 15:32:58  profilanswer
 

ok merci bien sho320 !!
 
je n'ai pas testé ta solution sho320 mais voici comment j'ai fais :
 

Code :
  1. <script type="text/javascript">
  2.  <!--
  3.  function Jouer(idmp3) {
  4.  corail=window.open('lecteur.php?idmp3='+idmp3, "fenetre", "width=400,height=200,scrollbars" );
  5.  }
  6.  function Ajouter(idmp3) {
  7.  corail=window.open('', "fenetre", "width=400,height=200,scrollbars" );
  8.  corail.message2JavascriptToFlash(idmp3);
  9.  }
  10.  //-->
  11.  </script>


 
Il m'a suffit de réouvrir la fenetre sans déclarer ce qu'elle contient dans la fonction Ajouter, ainsi n'importe quelle page reprend le contrôle du lecteur mp3.
 
Ceci marche sous ie6 et firefox.
 
Si ca ne marche plus sous ie7 je testerais la solution de sho320.
 
a+


Message édité par BaDaBoOm le 10-09-2006 à 15:45:42

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Résolu [Javascript] Agir dans Popup après fermeture de la fenetre mère

 

Sujets relatifs
[Résolu]Problème depuis que Register Globals est sur offferme la fenêtre mais pas l'appli
[non résolu] Retourner le paragraphe le plus récent par document[xsl] [résolu] du rififi dans mon if :D
[résolu]Argument en entrée[Resolu] Formulaire dynamique avec checkboxs
(Résolu) Net Use dans un fichier batch ( avec loggin)[Résolu] Positionnement DIV Css
[Résolu] Problème de syntaxe avec un define[Résolu)]Problème affectation chaine de caractère
Plus de sujets relatifs à : Résolu [Javascript] Agir dans Popup après fermeture de la fenetre mère


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR