Javascript et operateur...

Utilisateur anonyme -  
totodunet Messages postés 1513 Statut Membre -
Bonjour,

je développe un script javascript pour un chat sur internet...

Il est déjà bien avancé, mais j'ai un problème que je n'arrive pas à surmonter...

Ce test retourne toujours false
if( messengerGlobalState && ( typeof requestContent[ 'messenger' ][ 'public' ][ 'newMessages' ][ 0 ] != 'undefined' ) ){
}


Mais lorsque que met un
alert( 'quelque chose' );
juste avant, il me retourne true sous firefox...

Enfin, toujours sur firefox, lorsque je fais un alert des différents composants, rien ne semble clocher...

alert( messengerGlobalState ) => true
alert( typeof messengerGlobalState ) => boolean

alert( typeof requestContent[ 'messenger' ][ 'public' ][ 'newMessages' ][ 0 ] ) => object
alert( typeof requestContent[ 'messenger' ][ 'public' ][ 'newMessages' ][ 0 ] ) => object

alert( messengerGlobalState && ( typeof requestContent[ 'messenger' ][ 'public' ][ 'newMessages' ][ 0 ] != 'undefined' ) => true

Néanmoins, ça ne marche toujours pas...

Ce code est disponible sur http://public.gwolepanda.fr/BetolerantNotifs/BetolerantNotifs-va.php

4 réponses

Utilisateur anonyme
 
Bonjour

Pourquoi dis-tu que ce test rend faux, alors que tu montres un peu plus loin qu'il rend vrai ? C'est plus probablement le code qui est entre les accolades aui a un problème, as tu essayé de mettre un alert ('coucou') (ou un point d'arrêt à la console javascript) pour voir ce qui se passe vraiment ?

D'autre part, même si ça n'a a priori aucun rapport, je ne vois pas à quoi sert le test if( notifsState && ( typeof requestContent[ 'notifs' ] != 'undefined' ) ){} ? On ne fait rien quel que soit le résultat du test !
0
Utilisateur anonyme
 
Parce que, je tente de simplifier le code que je vous présente...
J'ai tenté de mettre un alert à l'intérieur, il est jamais exécuté... La seul fois ou il l'est, c'est quand, sous firefox, je met un alert juste avant...
0
totodunet Messages postés 1513 Statut Membre 201
 
salut! le problème est-il résolu depuis ?
0
Utilisateur anonyme
 
Bonsoir,

Et bien non, j'ai essayé pas mal de choses, mais impossible de trouver une solution...
0
totodunet Messages postés 1513 Statut Membre 201
 
comme le père. a expliqué, si tu dis que :

" alert( messengerGlobalState && ( typeof requestContent[ 'messenger' ][ 'public' ][ 'newMessages' ][ 0 ] != 'undefined' ) => true "

alors le résultat de ton test n'est forcément pas faux. Si ça ne fonctionne pas, c'est que l'erreur est certainement dans ton if.

as-tu fait d'abord alert(requestTime!=requestLastTime) avant pour voir déjà si ça répond à la condition plus haute ?


0
Utilisateur anonyme
 
Je dis que :
alert( messengerGlobalState && ( typeof requestContent[ 'messenger' ][ 'public' ][ 'newMessages' ][ 0 ] != 'undefined' )

affiche "True"...

Mais que, dans la pratique ça ne marche pas...

Je code surtout du PHP, et je dois avouer que j'aime se langage car il est clair... Je le trouve plus clair que JavaScript... Quand j'ai découvert jQuery, je me suis dis, chouette une bibliothèque qui va me permettre de faire de bon truc simplement et qui fonctionnent pareil sur tous les navigateurs... Mais j'avais oubli" que parfois, il faut faire du JS pur, et que là, sous Firefox et Chrome, c'est plus du tous la même chose...
0
totodunet Messages postés 1513 Statut Membre 201
 
ok! on ne peut pas vraiment comparer le PHP et le JS, ce sont deux langages différents qui ont leurs utilités, même si depuis le JS s'est étendu en incluant des nouvelles fonctionnalités côté serveur avec l'AJAX. Le PHP n'a pas été conçu à l'origine pour le web :)

Encore Firefox et Chrome ne sont pas si pénible pour faire fonctionner les scripts. Le pire c'est Internet Explorer!

si tu mets alert(requestTime != requestLastTime); ça donne quoi ? c'est pour vérifier si déjà ça répond à la condition plus haute.
0