DOM BUILDER : PROTOTYPE ROCKS !

ralecul Messages postés 111 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 1 août 2008 - 6 juil. 2008 à 10:20
ralecul Messages postés 111 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 1 août 2008 - 12 nov. 2009 à 21:27
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/47227-dom-builder-prototype-rocks

ralecul Messages postés 111 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 1 août 2008
12 nov. 2009 à 21:27
Kazma : Quel dommage ! Si tu avais pris la peine de regarder ma source je suis sur que tu aurais appris des choses...
@karamel Messages postés 1855 Date d'inscription vendredi 9 mai 2008 Statut Modérateur Dernière intervention 18 avril 2024 153
11 nov. 2009 à 21:17
vue que ta source et plus ou moins dans la meme vision que la mienne je pense que tu merite la meme note
XtremDuke Messages postés 626 Date d'inscription samedi 28 septembre 2002 Statut Membre Dernière intervention 18 mai 2009 4
23 juil. 2008 à 09:53
"Vivement IE8 et qu'il corrige tout ça..."

>> je pencherai plutôt pour la version IE12 en 2038. ^^

Bon ok, j'arrête mes sarcasmes...
ralecul Messages postés 111 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 1 août 2008
22 juil. 2008 à 23:33
Encore une "spécificité" de IE, cool ;-)
Je l'avais rencontré il y a longtemps mais je n'utilisais pas encore de DOM builder.
Le seul workaround fonctionnel (de mémoire), créer l'input via innerHTML là il est pris en compte correctement...

<troll>Vivement IE8 et qu'il corrige tout ça...</troll>
XtremDuke Messages postés 626 Date d'inscription samedi 28 septembre 2002 Statut Membre Dernière intervention 18 mai 2009 4
18 juil. 2008 à 14:47
Bon apparement, sous IE, il n'est pas possible de jouer sur l'attribut "checked" tant que l'élément n'est pas inseré.

"...You will noticed I set the checked status on the checkbox. But when IE renders that code the checkbox is unchecked. But when I do the alert it tells me true. What the...? Well, it turns out IE's rendering doesn't care what I do to the checkbox before I insert it into the document. IE only reflects those changes made after the insertion..."
XtremDuke Messages postés 626 Date d'inscription samedi 28 septembre 2002 Statut Membre Dernière intervention 18 mai 2009 4
18 juil. 2008 à 12:34
Je viens de tomber sur un problème et par curiosité j'ai regardé si celà se produisant avec ta méthode :

var input = new Element('input', {
type : 'radio',
name : 'prenom',
checked : true
});

Sous IE, impossible d'affecter l'attribut 'checked'.
ralecul Messages postés 111 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 1 août 2008
7 juil. 2008 à 18:12
Il y a effectivement un bug avec mon DOM Builder si tu précises une valeur false pour l'ajout d'attribut de type booléen.
Après cela parait bizarre de spécifier "disabled : false" alors qu'il suffirait de ne pas spécifier de valeur pour disabled.
Mais cela peut être intéressant si l'état de l'attribut booléen est stocké dans une variable.

J'ai écrit une nouvelle version de mon DOM Builder avec les méthodes writeAttribute et readAttribute donc il me sera plus facile de corriger ce bug. Par contre je n'ai pas encore pu re-tester tous les workarounds de IE donc je vais attendre un peu avant de poster les modifications.
XtremDuke Messages postés 626 Date d'inscription samedi 28 septembre 2002 Statut Membre Dernière intervention 18 mai 2009 4
7 juil. 2008 à 16:35
Sympa mais une remarque qui me vient à l'esprit :

Celà fonctionne-t-il ?

var input = new Element('input', {
name : 'prenom',
disabled : false,
value : 'toto'
});
ralecul Messages postés 111 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 1 août 2008
6 juil. 2008 à 10:20
Une bonne lecture pour la comparaison DOM vs innerHTML :http://www.quirksmode.org/dom/innerhtml.html

Mon benchmark n'utilise pas la méthode cloneNode, il est donc comparable au test "W3C DOM 1" présent sur ce site. En ce qui concerne la version innerHTML, elle est très basique et elle est donc comparable au test "innerHTML 1".
Rejoignez-nous