[javascript] savoir si une variable ou un objet existe déjà

savoir si une variable ou un objet existe déjà [javascript] - HTML/CSS - Programmation

Marsh Posté le 17-04-2007 à 13:42:58    

salut  :hello:  
 
existe t'il un moyen de tester un nom de variable (ou d'objet) pour savoir si cette variable (ou cet objet) à déjà été créé dans le programme javascript d'une page
 
car dés qu'on utilise un nom inexistante ça provoque une erreur, et ça stope le programme :cry:
 
par exemple je veux ouvrir une popup si celle-ci n'est pas déjà ouverte
 
je cherche donc à faire un test du genre
 

Code :
  1. if(fonction_que_je_connai_pas(popup_ouverte)){
  2. popup_ouverte = window.open('adresse_page.html','popup_ouverte','width=500,height=400,scrollbars=1,resizable=1');
  3. }


 
est ce que c'est possible ?


---------------
NOUVEAU!! Février 2024 : j'ai créé un nouveau jeu en ligne : https://www.boblybots.com
Reply

Marsh Posté le 17-04-2007 à 13:42:58   

Reply

Marsh Posté le 17-04-2007 à 13:49:59    

Code :
  1. if ( popup_ouverte != undefined )
 

Néanmoins 2 choses:

  • dans ce cas précis ça sert à rien, le 2eme argument de window.open étant le "nom" de la fenetre ouverte. En l'utilisant tout le temps, le comportement par défaut du navigateur est d'ouvrir la fenêtre (si celle-ci ne l'est pas) ou de se servir de celle ouverte pour rafraichir son contenu
  • attention à la portée des variables!!!, je ne sais pas ou est déclarée ta variable popup_ouverte mais méfiance!


Message édité par anapajari le 17-04-2007 à 13:50:20
Reply

Marsh Posté le 17-04-2007 à 14:00:10    

c'est ça le problème, on ne peut pas faire le test
 
if(popup_ouverte != undefined)  
 
si popup_ouverte n'a pas été préalablement créé sa provoque l'erreur "popup_ouverte est indéfini"


---------------
NOUVEAU!! Février 2024 : j'ai créé un nouveau jeu en ligne : https://www.boblybots.com
Reply

Marsh Posté le 17-04-2007 à 14:01:58    

il faudrait une fonction du genre
 
if(exist(popup_ouverte)){
 
}
 
mais apperemment ça n'existe pas en javascript ????


Message édité par ClD le 17-04-2007 à 14:02:25

---------------
NOUVEAU!! Février 2024 : j'ai créé un nouveau jeu en ligne : https://www.boblybots.com
Reply

Marsh Posté le 17-04-2007 à 14:09:50    

Ah mais tu l'as carrément même pas déclarer quelque part???
Du coup tu est obligé de passer par l'objet window ( si biensur ta variable est définie ensuite dans le scope global):

Code :
  1. if ( typeof(window['popup_ouverte']) != undefined){
  2.   /*** et si tu veux la définir globale ***/
  3. window['popup_ouverte'] = [];
  4. }


enfin un truc dans le genre ...
 
Et je ré-itère mon avertissement sur le scope de popup_ouverte...

Reply

Marsh Posté le 17-04-2007 à 14:32:18    

quand je fait

Code :
  1. alert(typeof(window['popup_ouverte']))

ça me repond bien undefined sans provoquer d'erreur
 
mais apperemment le test
 

Code :
  1. typeof(window['popup_ouverte']) != undefined


 
est toujours vrai
 
et
 

Code :
  1. typeof(window['popup_ouverte']) == undefined


 
est toujours faux
 
t'es sûr que ça marche le if(machin != undefined) ?


Message édité par ClD le 17-04-2007 à 14:33:34

---------------
NOUVEAU!! Février 2024 : j'ai créé un nouveau jeu en ligne : https://www.boblybots.com
Reply

Marsh Posté le 17-04-2007 à 14:40:16    

manque les quotes autour de undefined...
typeof retourne un string

Reply

Marsh Posté le 17-04-2007 à 14:51:23    

ha j'aurai jamais deviné que ça retourne le mot 'undefined' et non la constante undefined
 
maintenant ça marche
 
milles mercis à toi :jap: :jap: :jap: :jap:


---------------
NOUVEAU!! Février 2024 : j'ai créé un nouveau jeu en ligne : https://www.boblybots.com
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed