Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire Cours JavaScript, 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 03/07/2009, 17h31   #1 (permalink)
Invité de passage
 
Date d'inscription: janvier 2007
Messages: 5
Par défaut body onload, javascript seulement 1fois

Bjr à tous,

Au chargement de mon index, j'execute la fonction
Code :
<body onload="Chargement()">
qui appelle un
Code :
music_window=window.open(...)
 
Code :
function Chargement() {
if(typeof(music_window) == 'undefined' || music_window.close)
//create new
	alert('Undefined!');
	music_window=window.open('music.php','_blank','menubar=no, status=no, scrollbars=no, menubar=no, width=250, height=130');
else
	alert('Exists!');
}
Comme je recharge la page d'index plusieurs fois (CSS), je voudrais vérifier si ma fenetre enfant deja appellée par window.open existe encore (auquel cas je ne fais rien) , ou si je dois de nouveau la réouvrir.

Dans mon cas, j'obtient toujours que 'music_window' est 'undefined'!

Comment faire pour vérifier si une fenete existe en javascript (attention au cas ou celle là n'a jamais ete crée, la variable music_window n'existe pas)?

Merci
galmiche est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 03/07/2009, 19h36   #2 (permalink)
Membre expérimenté
 
Date d'inscription: mars 2002
Âge: 38
Messages: 547
Par défaut

Salut,

Etant donné que lorsque tu recharges ton index c'est comme si tu le faisais la première fois vis-à-vis de ce document (ton index) il est probablement plus simple d'utiliser un cookie pour savoir si tu l'as déjà ouverte

devyan
devyan est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 03/07/2009, 21h17   #3 (permalink)
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Date d'inscription: mars 2002
Localisation: Au coeur de la Nébuleuse de la Rainette
Messages: 22 666
Par défaut

il y a un script dans les contributions ou la faq
un test du style
Code :
if (parent.nomepopup)
sinon oui les cookies


ou sous IE une variable navigator

le plus simple encore etant une variable de session coté serveur
__________________
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts )
Citation:
Deux règles du succès:
1) Ne communiquez jamais à quelqu'un tout votre savoir...

Votre post a trouvé une réponse qui vous satisfait ? Alors n'oubliez pas le Tag

réalisations web (developpeur et/ou infographiste et/ou chef de projet:
www.saftair.com| www.ouestisol.fr | www.sebemex.fr
| www.sistac-alizay.fr | www.planet-languages.com | www.acoustishop.fr | www.litt.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 04/07/2009, 12h20   #4 (permalink)
Invité de passage
 
Date d'inscription: janvier 2007
Messages: 5
Par défaut

Merci pr les réponse.

- La solution a cookie ne marche pas car pas mal d'utilisateurs n'acceptent pas les cookies.
- Le sessions ne marchent pas (au 1er tour) car les anti-popup se déclenchent a la premiere visite du site, demandant si on accepte la 'pop-up': meme si on l'accepte, la session est ouverte et dans ce cas, on a pas vu passer le premier chargement (qui a ete refusé par l'anti-popup)!

==> la conclusion est qu'il faut vraiement tester la présence ou non de la fenetre enfant (popup) et l'ouvrir si elle existe pas déjà:
reste la fctif (parent.name popup) : pouvez vous etre plus précis svp car je ne trouve pas la fonction et je ne vois pas comment celle ci agit sur une fenetre enfant. Un exemple?

Merci
galmiche est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 04/07/2009, 14h56   #5 (permalink)
Rédacteur/Modérateur
 
Avatar de emmanuel.remy
 
Nom : Emmanuel REMY
Date d'inscription: novembre 2005
Localisation: Grand Perron des Encombres
Âge: 41
Messages: 2 466
Par défaut

Salut,

Pourquoi chercher à régler ce souci au chargement de la page ? Ne serait ce pas plus logique de faire le ménage au déchargement ? Via l'événement window.onunload par exemple.

ERE
__________________
Quand une tête pense seule, elle devient folle.
emmanuel.remy est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 04/07/2009, 20h41   #6 (permalink)
Invité de passage
 
Date d'inscription: janvier 2007
Messages: 5
Par défaut

Précision:
Le problème n'est pas un déchargement mais bien,d'appeller window.open une fenetre fille: En javascript
1- Au lancement du parent <body 'Onload'... , verifier la présence d'une fenetre fille dont le nom a peut etre deja ete donné lors d'un premier lancement.
- si fenete fille existe ne rien faire, surtout ne pas la relancer car il se passe déjà des chose (slideshow en cours) dans la fenetre fille.
- si fenetre fille existe pas , la lancer.
2- Si la parent est rechargée, (vu qu'elle est en CSS, chaque click equivaut a un rechargment)
- alors faire comme au point 1.
On ne parle donc pas de phase de déchargement.

La question est donc simple comment vérifier qu'un child window est deja lancée? (attention dans le cas ou elle n'a jamais ete lancée une premiere fois, la variable ma_fenetre=windows.open(...) n'existe pas et peut retourner une erreur)
Bizarrement le code que je ci en haut, me retourne toujours undefined, meme si la fenetre fille existe deja. Je pense que la variable identifiant la fenetre est inconnue.
galmiche est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 05/07/2009, 12h19   #7 (permalink)
Membre expérimenté
 
Date d'inscription: mars 2002
Âge: 38
Messages: 547
Par défaut

Salut,

Tu es dans un navigateur web, à chaque fois que tu affiches une page c'est pour ton navigateur comme si c'était la première fois.
C'est à dire que toutes les variables que tu as pu utiliser dans tes scripts sont inconnues au chargement suivant sauf si tu utilises une méthode pour les mémoriser (cookie, session ou même paramètre dans l'url)

devyan.
devyan est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 05/07/2009, 13h47   #8 (permalink)
Invité de passage
 
Date d'inscription: janvier 2007
Messages: 5
Par défaut

OK, mais doit bien y'avoir un moyen de savoir si la fentre fille existe, en checkant son id, ou son nom de fenetre ou son titre? C'est quoi les focntions javascripts qui retournent les noms, id, et titre d'une fenetre fille?
galmiche est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 06/07/2009, 03h11   #9 (permalink)
Rédacteur/Modérateur
 
Avatar de emmanuel.remy
 
Nom : Emmanuel REMY
Date d'inscription: novembre 2005
Localisation: Grand Perron des Encombres
Âge: 41
Messages: 2 466
Par défaut

Citation:
Envoyé par galmiche Voir le message
OK, mais doit bien y'avoir un moyen de savoir si la fentre fille existe, en checkant son id, ou son nom de fenetre ou son titre? C'est quoi les focntions javascripts qui retournent les noms, id, et titre d'une fenetre fille?
Non il n'existe pas de moyen puisque comme le dit devyan:
Citation:
à chaque fois que tu affiches une page c'est pour ton navigateur comme si c'était la première fois.
C'est à dire que toutes les variables que tu as pu utiliser dans tes scripts sont inconnues au chargement suivant
. Tu ne peux lister les fenêtres utilisées par le navigateur; tu pourrais le faire avec des apis du système, mais pas en JS.
Donc comme le dit ( encore ) devyan
Citation:
... sauf si tu utilises une méthode pour les mémoriser (cookie, session ou même paramètre dans l'url)
ERE
__________________
Quand une tête pense seule, elle devient folle.
emmanuel.remy est déconnecté   Envoyer un message privé Réponse avec citation
NEWS JAVASCRIPTF.A.Q JSTUTORIELS JSSOURCES JSLIVRES JS

Réponse Proposer ce sujet en actualité

Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non



Fuseau horaire GMT +1. Il est actuellement 01h52.


Vos questions techniques : forum d'entraide JavaScript - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Hébergement - Participez - Copyright © 2000-2010 www.developpez.com - Legal informations.