Un truc qui pourrait intéresser du monde : Autocomplete manuel [DHTML] - HTML/CSS - Programmation
Marsh Posté le 12-07-2003 à 01:56:10
Reste plus qu'à pouvoir faire flèche vers le bas pour sélectionner
edit: sous firebird je peux même pas sélectionner de texte
Marsh Posté le 12-07-2003 à 08:06:22
MagicBuzz a écrit : |
C'est ça qui est génial avec toi. Tu dis que seul IE travaille correctement, hors c'est opéra qui a raison, les deux events étant de même priorité, il est normal qu'ils se déclenchent simultanément.
Marsh Posté le 12-07-2003 à 10:43:57
Trop bien ce script. (ca évite de faire des trucs du genre: si votre pays n'est pas dans liste, précisez-le ici...). Je garde le topic sous le coude en attendant les debugages. ( masqué)
Marsh Posté le 12-07-2003 à 14:33:35
Faudra apprendre à lire les specs. Annuler un event, cela revient à changer sont comportement normal, rien d'autre. un blur peut donc sans aucun problème agir en même temps qu'un click.
Marsh Posté le 13-07-2003 à 00:36:51
Ouep, intéressant
Pour ta future version, tu pourrais ajouter un grip size, ça pourrait être sympa
Marsh Posté le 13-07-2003 à 23:10:27
Je rigolais, calme toi
Quoique..
Marsh Posté le 13-07-2003 à 23:32:35
MagicBuzz a écrit : |
T'as vraiment du mal on dirait.
On va prendre un exemple simple: j'ai un input et un lien, avec un blur sur l'input et un click su le lien.
Condition initiale: j'ai le focus sur l'input.
Action: Je clique sur le lien.
Si maintenant, j'annule l'event click, cela revient JUSTE à ce que le lien ne lance pas de requète http, il prend quand même le focus et l'input devient blur.
T'as compris maintenant?
Evidemment, si après tu te bases sur les comportements de IE pour dire ce qui est correct ou ce qui ne l'est pas...
Marsh Posté le 15-07-2003 à 01:31:03
bon, puisque MagicBug justifie son incapacité à faire fonctionner correctement une appli aussi simple en rejetant la faute sur les concepteurs des outils, je me dois de rétablir la vérité.
Alors, tout d'abord, un event blur se produit AVANT un event click, que ce soit sous Opera ou IE, un simple test avec un input et un lien avec affichage d'une variable permet de le confirmer. Son argument comme quoi il doit bloquer le onclick est donc faux
(remarquez que selon lui, c'est "trivial"...)
Ensuite, celui-ci affirme, sur de lui:
Citation : Quand tu cliques sur un objet, si on n'annule pas le code de sortie, l'évènement est propagé au parent de l'objet, et ainsi de suite. (t'as qu'à faire un div, et "onclick" sur le div un "alert('toto')" et onclick sur le body "alert('titi')", il va t'afficher "toto" puis "titi". C'est le comportement normal. |
Or, ce qu'il nous décrit ici, n'est ni plus ni moins que le principe de bouillonement. Ce qu'il oublie de dire, c'est que se principe s'applique APRES le principe de capture d'évennement selon la méthode standard, qui elle, part du SOMMET du document.
L'annulation d'un event permet effectivement de bloquer tous les actions par défaut du même event, mais ici, comme il s'agit d'action spécifiée par l'utilisateur (alert), il est normal qu'elles soient exécutée.
Opera a donc raison, Magic à tord.
Enfin, parce qu'il n'aurait pas été très utile de lui rabattre son caquet en laissant les utilisateurs sur leur faim, j'ai pris son script, ouvert deux-trois sites parlant d'ecmascript et de DOM, et je l'ai modifié.
J'y ai apporté les modifications suivantes:
- support de Opera 7.1
- utilisation de fonctions normalisées pour un meilleur support ultérieur
- meilleur utilisation des CSS (au détriment de IE, mais une simple ligne de code permet d'y remédier)
- utilisation de l'attibut display au lieu de l'attribut visibility qui déforme irrémédiablement la page.
Pour faire cela, je n'ai mis que 2 heures, alors que je me considère comme peu doué en ce qui concerne l'ecmascript.
Voici le code:
Code :
|
Peut-être qu'après cela, Magic arrètera enfin de critiquer les outils sans remettre en cause celui qui les utilise...
Marsh Posté le 15-07-2003 à 01:48:08
ReplyMarsh Posté le 15-07-2003 à 09:45:18
MagicBuzz a écrit : |
Si tu testes correctement ta version, tu verras que si on cliques sur un endroit qui n'est pas dans le prolongement horizontal de ta liste, celle-ci ne disparait pas non plus. on n'est donc limité un une petite bande de 60px chez toi.
Par contre, chez moi, vu que ceci sert au remplissage d'un formulaire, la liste disparait dès que l'input suivant est sélectionné (il se peut que ce soit le submit), ce qui est nettement plus logique d'un point de vue utilisation.
Avoir un produit fini, c'est aussi penser à la manière dont les gens vont l'utiliser une fois intégré.
Marsh Posté le 15-07-2003 à 11:40:53
MagicBuzz a écrit : Bah je sais pas avec quelle version de quel navigateur tu as testé, mais avec IE, quand tu cliques n'importe où, ça disparaît. Au pire, c'est aisément corrigeable sous les autres navigateurs, il suffit de forcer le body à prendre toute la place à l'écran, ce que IE fait par défaut. |
Marsh Posté le 15-07-2003 à 12:07:33
Bon on reprend dans l'ordre:
- NS 6.2, ca utilise quel moteur Gecko? parce que je n'ai que la 1.3.1 et 1.4 ici. Et le click n'est pas propagé, que l'on clique sur les flèches ou sur l'ascenseur.
- Remplir les champs dans l'ordre? quelle importance! il suffit d'adjoindre le onfocus que j'ai mis dans le deuxième input à chaque input. Mieux, il suffit de faire une fonction qui fait disparaitre l'ensemble des listes lorque l'on clique sur un input.
Encore une fois, tu poses de faux problèmes.
- mon truc n'est pas 100% limité, je t'ai montré toutes les erreurs du tien et les aie corrigéeS, je ne vois pas en quoi le mein serait plus limité par la même occasion.
Marsh Posté le 15-07-2003 à 12:31:00
Si on devait parler de généricité, on utiliserait les éléments DOM2-qui-vont-bien, hors ceux-ci ne sont pas encore supportés par les navigateurs actuels (même IE), donc ce terme n'a pas sa place ici. En outre, ca te va bien de parler de généricité quand tu ecris ce genre de chose dans ton script:
Code :
|
La question de la propreté, je te la retourne également. D'une part tu utilises des fonctions qui ne sont pas standards (event.keyCode par exemple, que j'ai vonlontairement laisser pour garder un petit "plus" à IE), d'autre part, tu dois annuler des event qui n'ont rien à voir avec l'action courrante. Alors avant de critiquer la brindille dans l'oeil du voisin...
Pour ce qui est de la réutilisabilité et de la maintenance, comme on peut tout regrouper dans une fonction, tu te fais un simple template que tu copies/colles. Ca te prend 10 sec. montre en main.
Pour ce qui est de l'évolutivité, ca viendra quand les navigateur utiliseront correctement le DOM2 (peut-être quand le DOM3 sortira ) Mais de ce côté là, on est tranquille avec IE qui ne sera vraissemblablement pas renouvelé avant 2005 (et encore).
Marsh Posté le 15-07-2003 à 12:51:02
MagicBuzz a écrit : Bah je sais pas avec quelle version de quel navigateur tu as testé, mais avec IE, quand tu cliques n'importe où, ça disparaît. Au pire, c'est aisément corrigeable sous les autres navigateurs, il suffit de forcer le body à prendre toute la place à l'écran, ce que IE fait par défaut. |
ca t'arrive de respecter le travail des autres ?
Marsh Posté le 15-07-2003 à 13:00:34
MagicBuzz a écrit : Sinon, pour NS 6.2 c'est ça : (je sais pas où je peux trouver une info plus précise) |
Ok, je viens de tester avec Mozilla 0.9.4 et je n'ai pas le bug que tu décris. Donc, j'en déduis que soit c'est un bug propre à l'implémentation de NS6.2, soit tu as des problèmes de tremblotte et tu cliques à côté.
Marsh Posté le 15-07-2003 à 13:02:45
forummp3 a écrit : ca t'arrive de respecter le travail des autres ? |
a la base c'est quand même lui qui l'a fait
Marsh Posté le 15-07-2003 à 13:10:20
et le même topic, l'aggressivité en moins, c'est possible ?
Marsh Posté le 15-07-2003 à 13:20:44
lorill a écrit : et le même topic, l'aggressivité en moins, c'est possible ? |
Meuh non, regarde les, ils s'aiment, ils s'empoignent, se serrent l'un contre l'autre et se frotte furieusement le corps, c'Est l'amour
Marsh Posté le 15-07-2003 à 13:31:23
MagicBuzz, explique moi pourquoi 90% de tes topics finissent en pugilat ?
J'en connais un qui va avoir droit au goudron et aux plumes le 09/08 !
Marsh Posté le 15-07-2003 à 14:20:56
d'un autre côté NS 6.2 c'est basé sur Mozilla 0.7 ou un truc du genre, c'est à dire un soft en développement, même pas qualifié de version "alpha"
Marsh Posté le 15-07-2003 à 14:49:05
antp >> mozilla 0.9.4 pour NS 6.2 (cf l'info de Magic)
MagicBuzz a écrit : Bah moi j'en sais rien. |
Marsh Posté le 15-07-2003 à 14:57:02
MagicBuzz a écrit : T'ain... C'est encore mieu |
gni? A moins que ce soit ma version de mozila 1.3.1 qui court-circuite la version 0.9.4, le javascript écrit au sein de balise écrite avec innerHTML fonctionne puisque mon script comme ton original fonctionnent.
Marsh Posté le 15-07-2003 à 15:07:47
Firebird 0.6 (gecko 1.4): ok
IE 6.0: ok
Opera: failed
Je regarderai ce soir si je vois pourquoi.
Marsh Posté le 15-07-2003 à 15:12:18
NS 7.1 OK
Marsh Posté le 15-07-2003 à 15:23:02
MagicBuzz a écrit : c'est pour cette raison que je me suis frité avec chais pu qui quand j'ai dis que NS supportait pas l'ajout en live d'options dans une combobox. |
gm_superstar ou gizmo je suppose
bah NS 6.2 c'est vieux, ils n'auraient jamais dû sortir de versions avant Mozilla 1 (NS 7) je trouve. Ça a contribué à l'image "NS4 c'était un vieux brol léger, maintenant y a un nouveau truc mais il est super lourd et ne fonctionne pas mieux"
Marsh Posté le 15-07-2003 à 16:38:33
ça marche nettement mieux que la 1e version
Marsh Posté le 15-07-2003 à 16:58:13
la version qui est en ligne marche pourtant nickel dans Mozilla 1.3
(y compris la sélection au clavier, qui ne fonctionnait pas dans la 1e version)
Marsh Posté le 15-07-2003 à 16:58:45
MagicBuzz a écrit : |
non, ca fait pareil chez moi, ca vient pas de ton pc
Marsh Posté le 15-07-2003 à 20:27:02
En effet, c'est vraiment bizare. Mais sinon ca marche très bien (à part les flèches car il a sa propre auto-complétion, mais ca c'est normal)
Félicitation.
Il y a une version online du définitif? (sur le lien je tombe toujours sur l'ancienne version) Comme ça on peut envoyer un bug report à opera.
Marsh Posté le 15-07-2003 à 20:35:31
maintenant oui
Sinon, pour le autocomplete, il n'y a pas d'équivalent sous opéra car les seules complétions qu'il autorise (excepté la gestion des mots de passes), concerne les infos rentrées dans le profil et les notes.
Par contre, le bug de l'ascenseur, je ne vois pas. avec ou sans le div fait la même taille, soit un peu plus que l'input avec ses bords par défaut.
Marsh Posté le 15-07-2003 à 21:23:34
C'est bien, mais pour ce qui est de l'accessibilité il faudra repasser : si je n'ai pas JavaScript d'activé ou si j'uilise un navigateur texte, je n'ai pas la liste d'options...
Use <noscript> Luke
Marsh Posté le 15-07-2003 à 22:50:43
c'est sans doute parce que les autres ont une vie en dehors
Marsh Posté le 15-07-2003 à 22:51:53
MagicBuzz a écrit : Sinon, de toute façon, tu t'en fout, à la base c'est une liste de saisie mais dont le texte est libre, donc vu que tu as un champ texte, même sans liste de choix, ça marchera sans problème, y'a juste que t'auras pas la liste de choix déjà existants. |
OK, je pensais que les choix étaient imposés dans la liste
Marsh Posté le 15-07-2003 à 22:57:04
Bon, testé et approuvé par Moi sur IE6.0SP1 et NS7.1 !
Mais...
La gestion des flèches fonctionnent dans la liste, mais apparement tu utilises onKeyUp, ce qui fait que la répétition des touches n'est pas gérée, ni les touches Home, End, PageUp et PageDown !
Bref, c'est pas mal...
Marsh Posté le 12-07-2003 à 01:23:33
deleted
Message édité par MagicBuzz le 01-02-2010 à 13:19:47