extractContents() + appendChild() + insertNode()
Citation:
Envoyé par
patricktoulon
non pour le background l'avantage de travailler avec execcommand comme pour tout les attributs sauf le textshadow bien evidement c'est que jamais le background se place dans dans un font stylé en css donc de ce coté pas de soucis
Ok tant mieux donc il utilise une balise <font> dédié au background... Je demande cela car sur Chrome c'est la balise <span> qui est utilisée...
Là je repense à ce que disait Loralina... Oui le fait que la méthode execCommand se comporte différemment selon le navigateur peut parfois poser problème...
Je vais tester ton code...
Citation:
Envoyé par
NoSmoking
là je suis bien d'accord avec toi, pour tous les styles gérés nativement par execCommand le travail est plutôt très bien fait même si les amoureux de la sémantique pourront tiquer sur le <strong> VS <b> ou autre <em> VS <i>. Je mettrais toutefois un bémol pour <font> qui est une balise « deprecated » depuis pas mal de temps.
Oui effectivement et je saisis l’occasion pour rappeler ce que j'avais écrit ici : #23 au cas où cela intéresserait quelqu'un...
Citation:
Envoyé par
NoSmoking
c'est du classique, à partir de là les modifications, l'ajout du <span>, sont visibles dans le document, le DOM à changé.
Ah merci j'ai mis un moment à capter, je ne comprenais pas à quel moment la span était insérée dans le DOM, c'est apparemment la méthode oRange.surroundContents(oSpan); (que tu m'as fait découvrir) qui fait cela à elle seule... Oui car d’après ce que j'ai compris on pourrait se passer du appendChild() car surroundContents() serait (presque ?) équivalent à : extractContents() + appendChild() + insertNode().
Trois pour le prix d'un...
Je vais quand même regarder si le fonctionnement est le même... En particulier concernant le point que j'ai évoqué au message #71.
Citation:
Envoyé par
NoSmoking
Il reste des choses à faire
• supprimer le style si celui du « parent » est le même
On pourrait aussi vérifier avant : si un des parents ("ancêtres") a déjà le style que l'on veut appliquer alors on n’exécute pas la fonction setInlineStyle(oSpan, style);...