Javascript et operateur...

Fermé
Utilisateur anonyme - 1 juil. 2013 à 23:08
totodunet Messages postés 1377 Date d'inscription mercredi 18 mars 2009 Statut Membre Dernière intervention 5 mars 2020 - 8 juil. 2013 à 17:52
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
2 juil. 2013 à 08:54
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
2 juil. 2013 à 13:19
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 1377 Date d'inscription mercredi 18 mars 2009 Statut Membre Dernière intervention 5 mars 2020 199
7 juil. 2013 à 21:20
salut! le problème est-il résolu depuis ?
0
Utilisateur anonyme
7 juil. 2013 à 23:12
Bonsoir,

Et bien non, j'ai essayé pas mal de choses, mais impossible de trouver une solution...
0
totodunet Messages postés 1377 Date d'inscription mercredi 18 mars 2009 Statut Membre Dernière intervention 5 mars 2020 199
8 juil. 2013 à 00:02
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
8 juil. 2013 à 00:12
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 1377 Date d'inscription mercredi 18 mars 2009 Statut Membre Dernière intervention 5 mars 2020 199
8 juil. 2013 à 17:52
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