Aller au contenu

Norme W3C


jpriton

Messages recommandés

  • Réponses 62
  • Créé
  • Dernière réponse

Tiens tant que vous êtes à acclamer Firefox, j'me gratte la tête pour trouver une solution à ma fonction majuscule qui tourne sous IE et Netscape.

j'utilise event.keyCode ou event.which pour récupérer et retourner la valeur en majuscule de la touche appuyée grâce à l'évenement onKeyPress.

Seulement pour Mozilla (Firefox), event.which est en lecture seule.

Fonction majuscule:

function majuscule(wEvt){

if (ie){

var wCar = String.fromCharCode(wEvt.keyCode);

wEvt.keyCode = wCar.toUpperCase().charCodeAt(0);

}

if (ns){

var wCar = String.fromCharCode(wEvt.which);

wEvt.which = wCar.toUpperCase().charCodeAt(0);

wEvt.target.handleEvent(wEvt);

}

Vous remarquerez déjà que le code IE est plus simple mais bon on va pas polémiquer ;)

Si vous avez une réponse, je serai reconnaissant :incline:

Lien vers le commentaire
Partager sur d’autres sites

Euh bon j'ai pas trop pigé à quoi te servait ta fonction (qu'est-ce qui va m'arriver ? Tu vas me traiter d'incapable ?), mais sous Firefox, pour récupérer le code clé, c'est très simple. D'ailleurs, c'est tout aussi simple de faire une version compatible IE/FF :

window.onload = function()
{
window.onkeypress = function(event)
{
 var code = (window.Event) ? event.which : event.keyCode;
 alert(code);
}
}

Tu te compliques la vie en faisant une condition pour voir s'il s'agit de IE ou de NS ou FF; alors qu'on peut simplement détecter la façon de capturer les événements ^^

Tu mets ce script dans un fichier JS à part, et tu le lies dans ton XHTML avec :

<script type="text/javascript" src="TonFichier.js" defer="defer"></script>

Le fait de faire le window.onload dans le script et non pas <body onload="laFonction();"> fait également une séparation contenu/dynamisme qui présente les avantages (enfin pas tout à fait, mais ça enlève les désavantages du mélange JavaScript/contenu) d'une séparation contenu/présentation.

Lien vers le commentaire
Partager sur d’autres sites

En fait, la fonction retourne le caractère en majuscule au moment de la saisi dans un champ texte de formulaire.

Je me suis mal exprimé.

j'appel donc cette fonction au moment de la saisi dans le champ spécifique comme le champ Nom: ou Ville: par exemple:

Nom: <input type="text" ..... onKeyPress="majuscule(event)">

ce qui permet de formater des champs comme pour ma fonction toutenchiffre() ou minuscule() ou premierelettreenmajuscule()... par exemple.

c'est plus clair?

Lien vers le commentaire
Partager sur d’autres sites

Ton astuce est rigolote mais la valeur du champ reste bien en minuscule ce qui oblige à remettre en majuscule après ce qui ne me convient pas.

De plus il y aura toujours une différence de saisi entre la minuscule et la majuscule!

je pense que la réponse à ma question est ici: http://www.w3.org/TR/2001/WD-DOM-Level-3-E.../def-index.html

mais va faloir que j'use de ma matière grise (un petit peu quand même :francais: )

j'ai trouvé !!!

//Pour Gecko navigateur

//*******************

var wCar = String.fromCharCode(wEvt.which);

var wNewEvent = document.createEvent("KeyEvents");

wNewEvent.initKeyEvent("keypress", true, true, document.defaultView, wEvt.ctrlKey, wEvt.altKey, wEvt.shiftKey, wEvt.metaKey, 0, wCar.toUpperCase().charCodeAt(0));

wEvt.preventDefault();

wEvt.target.dispatchEvent(wNewEvent);

c'est ce qu'on appel un modèle de simplicité :transpi:

Lien vers le commentaire
Partager sur d’autres sites

Je viens de finir mon programme pour mon stage et j'ai donc testé sur une machine de l'entreprise --> Windows+IE sachant que j'ai codé sur LINUX+FIREFOX.

ben j'ai eu une belle surprise :francais:

En effet ca me fait legerement n'importe quoi :chinois:

Donc je suis parti pour faire un site marqué en bas "optimized for IE", ah ben bravo j'ai envie de dire.

Que l'on vienne pas me dire que IE c'est le seul a respecter les normes, il en fait qu'a sa tete se truc :(

Bon ben c'est parti alors...

Lien vers le commentaire
Partager sur d’autres sites

Ton astuce est rigolote mais la valeur du champ reste bien en minuscule ce qui oblige à remettre en majuscule après ce qui ne me convient pas.

Ben oui, le but était de ne pas alourdir le code XHTML pour rien (parce que là c'est le cas ^^) et de transformer les minuscules grâce au traitement du côté serveur (la fonction strtoupper() en PHP par exemple).

Mais bon tu fais comme tu veux... À part ça, je pense qu'il y aurait une méthode plus simple en faisant un toUpperCase() directement sur le champ plutôt que sur la touche pressée... Mais bon bref, je ne suis pas un pro du JavaScript et sachant que tu ne prendras même pas vraiment compte de ma remarque, j'ai pas envie de faire des tests.

Cela dit, la prochaine fois que tu as un problème concernant les normes (de près ou de loin), ouvre plutôt un nouveau topic ou alors poste sur le forum de Alsacréations...

Lien vers le commentaire
Partager sur d’autres sites

t'es partout Neo (comme moi d'ailleur :D )

t'inquiètes, j'ai bien pris en considérations tes solutions. Mais j'éssaye de créer des applications Web à l'identique des applications Windows et ce n'est pas toujours évidant d'obtenir les mêmes résultats. De plus, il est vrai que je verifie et reformate le texte côté serveur :zarb:

Merci quand même :transpi:

Lien vers le commentaire
Partager sur d’autres sites

t'es partout Neo (comme moi d'ailleur :zarb: )

t'inquiètes, j'ai bien pris en considérations tes solutions. Mais j'éssaye de créer des applications Web à l'identique des applications Windows et ce n'est pas toujours évidant d'obtenir les mêmes résultats. De plus, il est vrai que je verifie et reformate le texte côté serveur :incline:

Merci quand même :reflechis:

Et je te raconte pas ce que ça donne si t'ajoutes à mon pseudo, mon identité réelle que j'utilise quand j'écris des articles...

Lien vers le commentaire
Partager sur d’autres sites

  • 5 mois après...

Je teste mes sites sous IE et sous Firefox... Et Firefox est souvent moins respectueux des standards que IE... N'en déplaise aux fanatiques de Firefox ! :roll:

Un site codé proprement passera direct sous IE... Je ne parle pas ici des ajouts faits par Microsoft genre activeX... Je ne veux pas en entendre parler non plus !

Ce serait pas plutot le contraire :chinois: IE est tellement mal foutue niveau respect des normes W3C qu'il accepte tout et n'importe quoi. Un site peut très bien s'afficher sous IE et très mal s'afficher sour Firefox. J'en ai fait l'expérience. Firefox respecte bien plus les normes du W3C qu'IE. Si tu veux être sur que ton site s'affiche bien sous IE, teste le sous firefox d'abord !

Lien vers le commentaire
Partager sur d’autres sites

Tiens tant que vous êtes à acclamer Firefox, j'me gratte la tête pour trouver une solution à ma fonction majuscule qui tourne sous IE et Netscape.

j'utilise event.keyCode ou event.which pour récupérer et retourner la valeur en majuscule de la touche appuyée grâce à l'évenement onKeyPress.

Seulement pour Mozilla (Firefox), event.which est en lecture seule.

Fonction majuscule:

function majuscule(wEvt){

if (ie){

var wCar = String.fromCharCode(wEvt.keyCode);

wEvt.keyCode = wCar.toUpperCase().charCodeAt(0);

}

if (ns){

var wCar = String.fromCharCode(wEvt.which);

wEvt.which = wCar.toUpperCase().charCodeAt(0);

wEvt.target.handleEvent(wEvt);

}

Vous remarquerez déjà que le code IE est plus simple mais bon on va pas polémiquer :transpi:

Si vous avez une réponse, je serai reconnaissant :reflechis:

Essaye ta recherche par là : http://www.quirksmode.org/js/introevents.html

Y a de bons exemples pour faire tourner des scripts avec événements & sous IE & sous Fx (et pas FF!)

Pour ce qui est de IE, une autre astuce (sage) consiste à utiliser les commentaires conditionnels :

<!--[if IE]> ...<[endif]-->

Gràce à ça, je suis passé au travers du bug Guillotine en utilisant un tableau (spécialement pour IE)

Pareil pour le CSS : en remplaçant .cl par [class=cl], il ne reconnaîtra rien et paf :)

(pour le moment, je dois avouer que faire du code compatible IE/W3C c'est assez chiant. Déjà j'ai du jarter mon entête xml (<?xml)) parce que môssieur n'apprécie pas (et pas en mode Quirks, quand je veux son mode strict)

Bref...

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.


×
×
  • Créer...