Nouveau sur le forum ? Voici votre case départ pour bien débuter.

Incontournables XHTML / CSS :

Auteur Pages : [<]
jeje
# 01 Oct 2008 - 19:30:09
Citer
Schtroumpf barbare
53 Posts
(reprise du message précédent)

Salut,
QuentinC a écrit :

Se servir de classes CSS réservées pour js et qui n'existent pas réellement dans la feuille de style, ce n'est pas une sorte de détournement quelque part ?

Justement, les classes n'ont rien de spécifiques aux CSS, rien de tel n'est mentionné dans les spec. C'est juste une utilisation possible.

Extrait des spec. html 4 (en)

The class attribute, on the other hand, assigns one or more class names to an element; the element may be said to belong to these classes. A class name may be shared by several element instances. The class attribute has several roles in HTML:
- As a style sheet selector (when an author wishes to assign style information to a set of elements).
- For general purpose processing by user agents.


Je crois même me rappeler que tu utilises les classes dans ton validateur de formulaires, afin de préciser le type de donnée attendu à la saisie.

Donc non, pas de détournement là-dedans, au contraire cligne

Pour revenir à la question, je plussoie Florent pour l'utilisation de script, plus souple dans ce cas précis et plus modulable si le fonctionnement venait à s'étoffer.

Et si je pousse encore la réflexion, je me dis que l'action du lien est d'exécuter cette action coté serveur si javascript est désactivé, donc je mets le div cible dans l'url.
Si JS actif, j'ai une classe générique "injector" sur mes liens (une information générique de comportement) qui me permet d'ajouter la surcouche javascript, et lors de l'exécution du listener, je parse l'url href...
Mais peut-être que je m'égare cligne

^
QuentinC
# 01 Oct 2008 - 22:42:02
Citer
Étudiant qui bosse ... ou pas
4241 Posts
Je crois même me rappeler que tu utilises les classes dans ton validateur de formulaires, afin de préciser le type de donnée attendu à la saisie.

Oui, exact. Cela ne m'empêche pas pour autant de remettre en question certaines choses, dont précisément celle-là. Ca fait déjà un certain temps que j'ai écrit ce script. Si je trouvais ça absolument génial au moment où je l'ai fait, finalement je me demande si c'était si génial que ça. Y'a plein de trucs dans mon site que je commence à trouver de plus en plus ... bof et que je devrais bien refaire.

De toute façon dans le cas de la validation de formulaire, mon super truc tendra à disparaître avec l'avènement de HTML5 qui propose presque tout ce qu'il faut pour les vérifications de formulaires les plus courantes.
Pour les navigateurs un peu conservaeteurs, j'avais commencé d'écrir un script HTML5FormsSimulator, actuellement en stand-by parce que j'ai d'autres trucs à faire plus urgent qui comptent pour mes études.
Au fait à ce propos j'ai remarqué que <input type="nimportequoi" /> affichait quoi qu'il arrive un champ texte simple ligne. Je sors un peu (beaucoup) du sujet initial mais je me demandais si c'était une spécialité de IE ou si c'était réellement utilisable. Rien vu de particulier dans les spec à ce sujet.

Bon je vais m'arrêter là, je suis en train de divaguer complètement du sujet de départ.

java.lang.BrainNotFoundException : Neuron connection failure

http://quentinc.net/ 
^
Florent V.
# 02 Oct 2008 - 00:43:23
Citer
On va manger des chips.
Modérateur
13463 Posts
QuentinC a écrit :
Au fait à ce propos j'ai remarqué que <input type="nimportequoi" /> affichait quoi qu'il arrive un champ texte simple ligne. Je sors un peu (beaucoup) du sujet initial mais je me demandais si c'était une spécialité de IE ou si c'était réellement utilisable. Rien vu de particulier dans les spec à ce sujet.

Par défaut un input est un input de type texte. Si tu écris juste
<input />
tu obtiens un champ texte.

Je suppose que si tu utilises une valeur inexistante pour l'attribut type, le navigateur bascule sur la valeur par défaut, donc "text".

http://www.covertprestige.net 
^
Tymlis
# 02 Oct 2008 - 01:05:59
Citer
368 Posts
Je serai plutot d'accord avec jeje, l'attribut class est tout à fait adapté à y mettre ce genre d'informations. Même s'il est actuellement utilisé quasi uniquement pour des définitions CSS ce n'est pas sa seule fonction, rien ne nous empeche de nous en servir pour autre chose.

Pour le cas précis de l'exemple indiqué dans le premier message, j'utiliserai personnellement directement l'attribut href avec un href="?action=truc#div1" comme jeje propose aussi, aucun probleme pour retrouver la cible à partir de là en javascript.

Et pour finir, je vous invite à jeter un oeil si vous ne l'avez pas déjà vu sur le plugin metadata de jQuery : http://plugins.jquery.com/project/metadata qui affronte cette problématique aussi (soit dans la class soit dans un attribut custom) mais qui parvient à stocker des objets complexes

You can cut our wings, but we will always remember what it was like to fly.

^
Citron.mecanik
# 02 Oct 2008 - 16:42:50
Citer
48 Posts
Pour la solution de Florent avec les balises <script>, J'avais vraiment envie d'éviter ça. Le but principal de la chose était que un intégrateur HTML puisse facilement créer des fonctionnement ajax sans pour autant avoir a écrire une ligne de JS.
Sinon je reconnais que c'est le plus simple.

jeje a écrit :
Et si je pousse encore la réflexion, je me dis que l'action du lien est d'exécuter cette action coté serveur si javascript est désactivé, donc je mets le div cible dans l'url.

Je peux pas vraiment faire ça car effectivement il existe une action alternative qui s'execute coté serveur en cas d'absence de javascript.
Seulement cette action ne doit justement pas avoir ce dernier paramètre , car c'est javascript qui va ajouter ce paramètre puis effectuer une requête ajax et n'avoir QUE le contenu de la div en retour a cause justement de ce parametre.

Tymlis a écrit :
href="?action=truc#div1"

Très pertinent , j'y avait même pas pensé ...
Mais si je veut quand même me servir des ancres pour une raison diverse je l'ai dans ... l'os.

Sinon c'est exellent le plugin de Jquery (malheuresement j'utilise actuellement mootools ... persone n'est parfait murf ).
Mais je crois que c'est cette approche qui est la meilleure. Et tanpis si cela doit être un peu lourd a developper sur le coup.

Une dernière petite question :
Je croyais que CLASS ne tolerait que les caractères alphanumerique, underscore et le signe moins [-_A-Za-z].
Jviens de faire des tests sous le validateur en ligne du w3 il n'a rien dit au sujet de [{} () :]
Le validateur est plus souple que ce que décrit la DTD XHTML, ou ces caractères sont bel et bien authorisé dans l'attribut CLASS

^
jeje
# 02 Oct 2008 - 20:28:27
Citer
Schtroumpf barbare
53 Posts
Bonsoir,
Citron.mecanik a écrit :
Seulement cette action ne doit justement pas avoir ce dernier paramètre , car c'est javascript qui va ajouter ce paramètre puis effectuer une requête ajax et n'avoir QUE le contenu de la div en retour a cause justement de ce parametre.


<a href="/?dest=div1">

et javascript vient ajouter un paramètre &ajax=1
Un seul paramètre utilisé à chaque fois que l'on fait de l'ajax, automatisation des traitements ajax coté serveur, automatisation du test support XHR coté client... et réponse à la question initiale murf

Je croyais que CLASS ne tolerait que les caractères alphanumerique

C'est déclaré en cdata-list et cdata n'a pas ces restrictions, en effet.
Perso je suis la déclaration de ID pour mes classes, pas besoin de plus.
On va attendre l'avis des spécialistes, lire les spec ça me fatigue vite ravi

a+

^
Florent V.
# 09 Oct 2008 - 20:34:48
Citer
On va manger des chips.
Modérateur
13463 Posts
Hello,

Dans la lignée des attributs personnalisés (invalides en HTML 4.01 et fortement déconseillés par Laurent ci-dessus pour des questions de maintenance et d'abus possibles notamment), on peut jeter un coup d'oeil au brouillon de HTML 5 qui proposera à priori des attributs personnalisés: data-monattribut:

http://www.w3.org/html/wg/html5/#custom-data-attribute

http://www.covertprestige.net 
^
Citron.mecanik
# 14 Oct 2008 - 14:33:22
Citer
48 Posts
Comment ça va etre pratique ! ravi

En attendant, si cela en interesse certains, j'ai opter pour la solution suivante :
<a 
href="?action=truc"
class="skin target (div01)" >blabla</a>


Comme ça je recupère facilement les éléments concernés grace à un selecteur CSS ( genre $$('.target') )
Après je recup ce qui se trouve entre paranthèse dans l'attribut CLASS et le tour est joué.

Finalement c'était pas bien dur cligne

^
Pages : [<]

référencesLes références web : openweb.eu.org - opquast.com - webmaster-hub.com - webrankinfo.com - salemioche.net - web-pour-tous.org - webonorme.org

Nos partenaires : Editions Eyrolles

Nikozen : Hébergement - Réalisation : Alsacreations.fr

Powered by Phedio v3.7.9 © dew
Contacter l'administrateur - 5.2 ms - Charte