Chez oim, forum libreChez oim, forum libre

favicon Google Recherche avancée  

RIP Johnny Halliday

RIP Johnny : 1943 - 2017


Pages: [1]   En bas

Auteur Sujet: Lorsque j'utilise innerHtml/appendHtml, mon css ne s'applique pas ! Pourquoi ?  (Lu 316 fois)

Songbird

  • Invité

Par défaut, Dart nettoie les injections d'html avant de les ajouter au document.
Seulement, lorsqu'il effectue le nettoyage, il supprime également tous les attributs de l'élément, y compris l'attribut style: affichant alors simplement votre texte.

Pour remédier au problème, il faut alors implémenter la classe abstraite NodeValidator dans une classe que vous aurez préalablement déclarée.
L'interface NodeValidator se charge de retenir les règles à faire respecter aux prochains morceaux de code HTML.

Voici un exemple d'utilisation:
Code
import 'dart:html';
void main()
{
  var body = querySelector("body");
  body.setInnerHtml('<span style="color: red;">Hello, friend.</span>', validator: new TrustedNodeValidator()); /**On utilise la méthode setInnerHtml pour injecter et respecter les règles personnalisées.*/
}

/**Déclaration et implémentation de l'interface NodeValidator*/
class TrustedNodeValidator implements NodeValidator
{
  bool allowsElement(Element element) => true; /**On autorise les éléments HTML*/
 
  bool allowsAttribute(element, attributeName, value) => true; /**On leur permet de posséder des attributs*/
}
Vous pouvez tester cet exemple ici.
Ou vous rendre sur la source de ce post ici.
Pages: [1]   En haut
 

+ Réponse Rapide

Page générée en 0.135 secondes avec 20 requêtes.