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 13/03/2010, 07h03   #1
Membre chevronné
 
Avatar de hornetbzz
 
Homme
Directeur commercial
Inscription : octobre 2009
Messages : 474
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 44
Localisation : France

Informations professionnelles :
Activité : Directeur commercial

Informations forums :
Inscription : octobre 2009
Messages : 474
Points : 681
Points : 681
Envoyer un message via Skype™ à hornetbzz
Par défaut [decouverte] regex split différents resultats selon le browser

Bonjour,


Je viens peut-être de découvrir la lune, mais si ça peut servir à d'autres :

Attention: L'interprétation de la fonction split est différente selon le navigateur client.

Je ne sais pas si c'est la fonction elle-même qui serait buggée ou si les navigateurs incluent des prototypes différents de cette fonction.

Un peu plus d'infos ici.
hornetbzz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2010, 08h57   #2
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 075
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 075
Points : 43 303
Points : 43 303
Je reste perplexe ...

dire que doit retourner un tableau à deux éléments ?
le ^ et le \b ???
Citation:
The rules are complex and might seem almost arbitrary without close examination
En effet

Par contre sous IE il n'en trouve aucun ^^

Code :
alert('ab'.split(/(?:ab)*/).length)
FFX => 1
IE => 0
__________________
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 13/03/2010, 09h54   #3
Membre chevronné
 
Avatar de hornetbzz
 
Homme
Directeur commercial
Inscription : octobre 2009
Messages : 474
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 44
Localisation : France

Informations professionnelles :
Activité : Directeur commercial

Informations forums :
Inscription : octobre 2009
Messages : 474
Points : 681
Points : 681
Envoyer un message via Skype™ à hornetbzz
Par défaut ré-écriture proto split

Oui effectivement, je me suis cantonné à regarder les couleurs sous les deux navigateurs FF et IE8 sans regarder le détail des résultats attendus, qui sont peut-être mal exprimés. Mais cela correspond quand même bien à une réalité.

Pour ma part, je me suis rendu compte de ce problème avec mon propre code js (tu auras noté, je n'ai pas dit "mon code propre" ) testé ss FF et IE. IE ne me sortait pas les résultats Ajax alors que FF oui. Donc j'ai cherché, recherché, fouillé, farfouillé. Horreur malheur, le doute m'habite subitement : seraient-ce mes classes XML, serait-ce une boulette de logique, de syntaxe ... ??

Bref rien de tout cela, la réalité est bien une interprétation différente de IE et FF avec les mêmes entrées dans le même code ... qui devrait sortir la même chose.

Même avec des regex simples du type ci-dessous, IE8 et FF3.5 sortent des résultats différents à iso-entrée dans la boite :
Code javascript :
1
2
3
4
5
6
7
8
9
10
var nodes = mes retours xml
var pattern_spec = /^(.+)?:(.+)?:(.+)?$/;
...
for (var i=0, c=nodes.length ; i < c; i++) {
   ligne_n = nodes[i].getAttribute("name");
   reg_result = ligne_n.split(pattern_spec);
   v1 = (undefined != reg_result[1])? reg_result[1] : "no data" ;
   v2 = (undefined != reg_result[2])? reg_result[2] : "no data" ;
   v3 = (undefined != reg_result[3])? reg_result[3] : "no data" ;
}
Je n'ai pas encore compris pourquoi. Notre ami grand-breton fournit également la ré-écriture de la fonction split, ce qui mérite notre attention je pense, avec en perspective :

- comprendre pourquoi,
- vérifier, tester
- contrôler l'étendue selon les navigateurs et leur version
- patcher

Pour la part, n'étant pas du tout spécialiste même si je commence à comprendre ce que je fais, je vais commencer par la fin: patcher avec l'aide du MIT.

Si les faits sont avérés, un petit article en vue serait de bon aloi comme aurait dit en son temps Maitre Capello.
hornetbzz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2010, 10h02   #4
Membre chevronné
 
Avatar de hornetbzz
 
Homme
Directeur commercial
Inscription : octobre 2009
Messages : 474
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 44
Localisation : France

Informations professionnelles :
Activité : Directeur commercial

Informations forums :
Inscription : octobre 2009
Messages : 474
Points : 681
Points : 681
Envoyer un message via Skype™ à hornetbzz
Et Ô miracle, le patch résout "mon" problème.
hornetbzz est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 06h01.


 
 
 
 
Partenaires

Hébergement Web