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 03/07/2009, 17h31   #1
Invité de passage
 
Inscription : janvier 2007
Messages : 5
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 5
Points : 0
Points : 0
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 :
1
2
3
4
5
6
7
8
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 00
Vieux 03/07/2009, 19h36   #2
Membre Expert
 
Inscription : mars 2002
Messages : 954
Détails du profil
Informations personnelles :
Âge : 39

Informations forums :
Inscription : mars 2002
Messages : 954
Points : 1 086
Points : 1 086
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 00
Vieux 03/07/2009, 21h17   #3
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 29 074
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 29 074
Points : 43 300
Points : 43 300
il y a un script dans les contributions ou la faq
un test du style
sinon oui les cookies


ou sous IE une variable navigator

le plus simple encore etant une variable de session coté serveur
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2009, 12h20   #4
Invité de passage
 
Inscription : janvier 2007
Messages : 5
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 5
Points : 0
Points : 0
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 00
Vieux 04/07/2009, 14h56   #5
Expert Confirmé
 
Avatar de emmanuel.remy
 
Emmanuel REMY
Inscription : novembre 2005
Messages : 2 826
Détails du profil
Informations personnelles :
Nom : Emmanuel REMY
Âge : 43

Informations forums :
Inscription : novembre 2005
Messages : 2 826
Points : 3 560
Points : 3 560
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 00
Vieux 04/07/2009, 20h41   #6
Invité de passage
 
Inscription : janvier 2007
Messages : 5
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 5
Points : 0
Points : 0
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 00
Vieux 05/07/2009, 12h19   #7
Membre Expert
 
Inscription : mars 2002
Messages : 954
Détails du profil
Informations personnelles :
Âge : 39

Informations forums :
Inscription : mars 2002
Messages : 954
Points : 1 086
Points : 1 086
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 00
Vieux 05/07/2009, 13h47   #8
Invité de passage
 
Inscription : janvier 2007
Messages : 5
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 5
Points : 0
Points : 0
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 00
Vieux 06/07/2009, 03h11   #9
Expert Confirmé
 
Avatar de emmanuel.remy
 
Emmanuel REMY
Inscription : novembre 2005
Messages : 2 826
Détails du profil
Informations personnelles :
Nom : Emmanuel REMY
Âge : 43

Informations forums :
Inscription : novembre 2005
Messages : 2 826
Points : 3 560
Points : 3 560
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 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 11h03.


 
 
 
 
Partenaires

Hébergement Web