Attention ! Ne cliquez pas sur ce lien, c'est un piège à enfoirés du net !

Chez oim, forum libreChez oim, forum libre

 


Pages: [1]   En bas

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

Songbird

  • Invité
Lorsque j'utilise innerHtml/appendHtml, mon css ne s'applique pas ! Pourquoi ?
« le: mercredi 20 juillet 2016, 03:27 »
le: mercredi 20 juillet 2016, 03:27

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: dart
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.
Signaler au modérateur   IP archivée
Pages: [1]   En haut
 

Page générée en 0.184 secondes avec 22 requêtes.