XtremDuke
Messages postés626Date d'inscriptionsamedi 28 septembre 2002StatutMembreDernière intervention18 mai 2009
-
25 oct. 2007 à 16:36
jdmcreator
Messages postés647Date d'inscriptionsamedi 30 décembre 2000StatutMembreDernière intervention20 juillet 2012
-
1 mars 2009 à 01:26
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
jdmcreator
Messages postés647Date d'inscriptionsamedi 30 décembre 2000StatutMembreDernière intervention20 juillet 20127 1 mars 2009 à 01:26
Bonjour,
J'ai testé avec Safari et ça ne fonctionne pas ;)
A+
JDMCreator
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 7 nov. 2007 à 00:42
Hello,
@LGH => IE n'est pas très réputé pour son support inconditionnel des standards. Enfin si, des standards microsoft ;-)
Bref, attaquer, comme tu le fais, le DOM directement via la valeur de l'attribut name d'un élément html n'est pas du DOM. Le DOM est strict...et IE trop permissif. Il n'y a guère qu'IE qui acceptera ce code car la plupart des autres navigateurs récents suivent beaucoup mieux le Document Object Model.
Quant à createTextRange, c'est effectivement, encore une fois, une spécificité IE, et uniquement IE. Il y a d'autres moyens de faire, en respectant le DOM, ceci dit. Même si IE propose des spécificités bien pratiques, c'est vrai. Mais comme le soulignent tes petits camarades de commentaire, le web, c'est vaste, et il vaut mieux faire en sorte de s'adapter aux utilisateurs, plutôt que de les forcer à utiliser des outils qu'ils n'ont pas envie d'utiliser. Faut bien respecter les minorités :-)
Fwdavy
Messages postés57Date d'inscriptionlundi 27 septembre 2004StatutMembreDernière intervention 8 novembre 2007 5 nov. 2007 à 16:42
Il y'avais plus simple et mieux a faire :
<script>
function chercheRemplace( text, stringToFind, stringRemplacement, champDeSortie )
{
var text = text.toString() ;
var maReg = new RegExp( stringToFind, "gi") ;
var resultat = text.replace( maReg, stringRemplacement ) ;
if ( text.search( maReg ) == -1 )
alert ( "Désolé le mot " + stringToFind.toUpperCase(stringToFind) + " n\'pas été trouvé" ) ;
else
champDeSortie.value = resultat ;
}
</script>
<form>
<textarea name="aireDeTexte" cols="75" rows="7">Saisissez ici votre texte</textarea>
Rechercher :
Remplacer par:
</form>
Fwdavy
Messages postés57Date d'inscriptionlundi 27 septembre 2004StatutMembreDernière intervention 8 novembre 2007 5 nov. 2007 à 16:08
Ca ne remplace même pas tus les mots mais juste le premier qui est trouvé...puis ca ne controle pas le mot minuscule / majuscule. Puis la compatibilité avec les autres navgateur est importante, on parle d'une technologie Web pas d'une appli en local -_-
cs_lgh
Messages postés41Date d'inscriptionvendredi 23 mai 2003StatutMembreDernière intervention 8 avril 2009 31 oct. 2007 à 10:53
Bonjour,
Suite et fin pour cette source...
Essai avec opéra 9.22.
La boucle (for...) ne fonctionne pas.
L'absence de formulaire dans le document principal n'est par contre (et par rapport à firefox) pas génante.
Conclusion, méthodes de recherche par traitement d'un TextRange, IE strictement (?).
LGH
cs_lgh
Messages postés41Date d'inscriptionvendredi 23 mai 2003StatutMembreDernière intervention 8 avril 2009 30 oct. 2007 à 11:26
Bonjour,
Je viens de vérifier le fonctionnement de la source sur firefox.
1/ Celui-ci ne demande pas de déclaration mais un formulaire pour fonctionner (or le xhtml ne le rend plus obligatoire...).
2/ Celui-ci ne reconnait semble-il pas les méthodes DHTML employées telles "objet.createTextRange()".
Celles-ci serait sauf erreur ou omission donc, exclusives IE.
Safari?
LGH
PS: A qui dois-je cette note encourageante, curieuse application de la charte!
XtremDuke
Messages postés626Date d'inscriptionsamedi 28 septembre 2002StatutMembreDernière intervention18 mai 20094 29 oct. 2007 à 17:14
As-tu testé ta source sous Safari ?
cs_lgh
Messages postés41Date d'inscriptionvendredi 23 mai 2003StatutMembreDernière intervention 8 avril 2009 29 oct. 2007 à 11:44
Bonjour roro,
J'aimerais bien lire la référence sur laquelle tu t'appuis. Cela me serait bien utile.
Mais en attendant, et même si firefox est un peu sensible, je me permes d'insister... Nulle part je n'ai rencontré d'obligation de "déclaration d'objet" dans le cas de figure qui nous préoccupe ici.
A tout hazard, j'ai repris la source en doublant les attributs des balises d'input et de textarea (xhtml transitional) et j'ai fait la différence entre les variables du script mais je ne vois pas ce que je peux faire de plus.
LGH
cs_roro06
Messages postés732Date d'inscriptionjeudi 2 janvier 2003StatutMembreDernière intervention29 octobre 2007 29 oct. 2007 à 10:54
Bonjour
C'était pas le but de mon commentaire, je ne vais pas entrer dans des trolls stupides et stériles, mais le développement javascript necessite de s'assurer du fonctionnement sur un maximum de plateformes possibles.
cs_lgh
Messages postés41Date d'inscriptionvendredi 23 mai 2003StatutMembreDernière intervention 8 avril 2009 29 oct. 2007 à 10:13
Bonjour,
Ce que je pense de Firefox ?
Je ne sais que dire.
LGH
cs_roro06
Messages postés732Date d'inscriptionjeudi 2 janvier 2003StatutMembreDernière intervention29 octobre 2007 29 oct. 2007 à 09:43
Bonjour
Il n'y a qu'IE qui accepte sans avoir au préalable déclaré ton objet, comme le fait très justement remarquer XtremDuke. FFx renvoie comme messages d'erreur : "aire is not defined" et "t1 is not defined"
Petit bug : la fonction "remplacer" ne marche pas après utilisation de "chercher"
snpier wolf
Messages postés216Date d'inscriptionsamedi 11 août 2007StatutMembreDernière intervention30 mai 2011 29 oct. 2007 à 09:06
bonjours,
bon normalement je "fait" du c++, mais le javasript je trouve sa asser fort bravo pour ton code.
A++
cs_lgh
Messages postés41Date d'inscriptionvendredi 23 mai 2003StatutMembreDernière intervention 8 avril 2009 27 oct. 2007 à 14:36
Bonjour xtrem...,
Si, je peux utiliser aire sans l'avoir déclaré au préalable, de même pour t1 et t2. Ils ne sont que des valeurs des attributs id et name des éléments textarea et input dans le document html.
(NB: Dans le doute j'ai feuilleté divers tutoriels y compris Introduction au javascript sur ce site et rien de ce que tu avances n'est précisé...).
LGH
XtremDuke
Messages postés626Date d'inscriptionsamedi 28 septembre 2002StatutMembreDernière intervention18 mai 20094 26 oct. 2007 à 13:28
Je ne parlais pas de l'extrait mais bel et bien de ta source.
Tu ne peux pas utiliser si tu n'a pas définis "aire" au préalable. "air" est l'identifiant de ton objet, pas ton objet. Et c'est la même chose pour t1, t2 etc...
cs_lgh
Messages postés41Date d'inscriptionvendredi 23 mai 2003StatutMembreDernière intervention 8 avril 2009 26 oct. 2007 à 07:32
Bonjour,
Une précision afin de répondre à xtrem...
Le code proposé ci-dessus n'est qu'un extrait de la source.
Tout est dans le zip.
LGH
XtremDuke
Messages postés626Date d'inscriptionsamedi 28 septembre 2002StatutMembreDernière intervention18 mai 20094 25 oct. 2007 à 16:36
Je rentre pas dans les détails mais tu as oublié de déclarer tes objets.
var air = document.getElementById('air'); // par exemple...
1 mars 2009 à 01:26
J'ai testé avec Safari et ça ne fonctionne pas ;)
A+
JDMCreator
7 nov. 2007 à 00:42
@LGH => IE n'est pas très réputé pour son support inconditionnel des standards. Enfin si, des standards microsoft ;-)
Bref, attaquer, comme tu le fais, le DOM directement via la valeur de l'attribut name d'un élément html n'est pas du DOM. Le DOM est strict...et IE trop permissif. Il n'y a guère qu'IE qui acceptera ce code car la plupart des autres navigateurs récents suivent beaucoup mieux le Document Object Model.
Quant à createTextRange, c'est effectivement, encore une fois, une spécificité IE, et uniquement IE. Il y a d'autres moyens de faire, en respectant le DOM, ceci dit. Même si IE propose des spécificités bien pratiques, c'est vrai. Mais comme le soulignent tes petits camarades de commentaire, le web, c'est vaste, et il vaut mieux faire en sorte de s'adapter aux utilisateurs, plutôt que de les forcer à utiliser des outils qu'ils n'ont pas envie d'utiliser. Faut bien respecter les minorités :-)
5 nov. 2007 à 16:42
<script>
function chercheRemplace( text, stringToFind, stringRemplacement, champDeSortie )
{
var text = text.toString() ;
var maReg = new RegExp( stringToFind, "gi") ;
var resultat = text.replace( maReg, stringRemplacement ) ;
if ( text.search( maReg ) == -1 )
alert ( "Désolé le mot " + stringToFind.toUpperCase(stringToFind) + " n\'pas été trouvé" ) ;
else
champDeSortie.value = resultat ;
}
</script>
<form>
<textarea name="aireDeTexte" cols="75" rows="7">Saisissez ici votre texte</textarea>
Rechercher :
Remplacer par:
</form>
5 nov. 2007 à 16:08
31 oct. 2007 à 10:53
Suite et fin pour cette source...
Essai avec opéra 9.22.
La boucle (for...) ne fonctionne pas.
L'absence de formulaire dans le document principal n'est par contre (et par rapport à firefox) pas génante.
Conclusion, méthodes de recherche par traitement d'un TextRange, IE strictement (?).
LGH
30 oct. 2007 à 11:26
Je viens de vérifier le fonctionnement de la source sur firefox.
1/ Celui-ci ne demande pas de déclaration mais un formulaire pour fonctionner (or le xhtml ne le rend plus obligatoire...).
2/ Celui-ci ne reconnait semble-il pas les méthodes DHTML employées telles "objet.createTextRange()".
Celles-ci serait sauf erreur ou omission donc, exclusives IE.
Safari?
LGH
PS: A qui dois-je cette note encourageante, curieuse application de la charte!
29 oct. 2007 à 17:14
29 oct. 2007 à 11:44
J'aimerais bien lire la référence sur laquelle tu t'appuis. Cela me serait bien utile.
Mais en attendant, et même si firefox est un peu sensible, je me permes d'insister... Nulle part je n'ai rencontré d'obligation de "déclaration d'objet" dans le cas de figure qui nous préoccupe ici.
A tout hazard, j'ai repris la source en doublant les attributs des balises d'input et de textarea (xhtml transitional) et j'ai fait la différence entre les variables du script mais je ne vois pas ce que je peux faire de plus.
LGH
29 oct. 2007 à 10:54
C'était pas le but de mon commentaire, je ne vais pas entrer dans des trolls stupides et stériles, mais le développement javascript necessite de s'assurer du fonctionnement sur un maximum de plateformes possibles.
29 oct. 2007 à 10:13
Ce que je pense de Firefox ?
Je ne sais que dire.
LGH
29 oct. 2007 à 09:43
Il n'y a qu'IE qui accepte sans avoir au préalable déclaré ton objet, comme le fait très justement remarquer XtremDuke. FFx renvoie comme messages d'erreur : "aire is not defined" et "t1 is not defined"
Petit bug : la fonction "remplacer" ne marche pas après utilisation de "chercher"
29 oct. 2007 à 09:06
bon normalement je "fait" du c++, mais le javasript je trouve sa asser fort bravo pour ton code.
A++
27 oct. 2007 à 14:36
Si, je peux utiliser aire sans l'avoir déclaré au préalable, de même pour t1 et t2. Ils ne sont que des valeurs des attributs id et name des éléments textarea et input dans le document html.
(NB: Dans le doute j'ai feuilleté divers tutoriels y compris Introduction au javascript sur ce site et rien de ce que tu avances n'est précisé...).
LGH
26 oct. 2007 à 13:28
Tu ne peux pas utiliser si tu n'a pas définis "aire" au préalable. "air" est l'identifiant de ton objet, pas ton objet. Et c'est la même chose pour t1, t2 etc...
26 oct. 2007 à 07:32
Une précision afin de répondre à xtrem...
Le code proposé ci-dessus n'est qu'un extrait de la source.
Tout est dans le zip.
LGH
25 oct. 2007 à 16:36
var air = document.getElementById('air'); // par exemple...