IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Ajouter un fichier CSS à un DOM


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2022
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2022
    Messages : 5
    Par défaut Ajouter un fichier CSS à un DOM
    Bonjour,

    Je suis en train de faire une application avec les caractéristiques suivantes:
    - page statique
    - pas de serveur (donc pas de PHP, AJAX)

    Le but de mon application est de sortir au format texte une page web.
    J'ai créé un DOM autre que celui de la page active.

    Je voudrais rajouter un fichier CSS à ce DOM.

    J'ai codé un addCharset qui fonctionne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function addCharset(dest, text)
    {
        sendInfo("addCharset");
     
        let obj = doc.createElement("meta");
        obj.setAttribute("charset", text);
     
        dest.appendChild(obj);
    }
    Je voudrais faire la même chose avec un CSS:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function addCSS(dest, text)
    {
        logger("addCSS");
        logger(dest); // dest est un XMLDocument
        logger(text); // text est style.css
     
        let obj = dest.createElement("link");
        obj.setAttribute("rel", "stylesheet");
        obj.setAttribute("href", text);
        logger(obj);
     
        ********************
    }
    Que dois-je mettre à la place des '*' pour que ça fonctionne ?

    Merci,
    Cordialement,

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 666
    Par défaut
    avez-vous essayé avec "appendChild" ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2022
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2022
    Messages : 5
    Par défaut appendChild testé
    Bonjour,

    Oui, lorsque je met appendChild, j'ai l'erreur suivante:

    Uncaught DOMException: Node.appendChild: Cannot have more than one Element child of a Document.
    Le DOM ressemble alors à la pièce jointe.

    Merci,
    Cordialement,
    Images attachées Images attachées  

  4. #4
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2022
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2022
    Messages : 5
    Par défaut J'ai trouvé une solution
    Salut,

    Merci de m'avoir mis sur la piste de l'appendChild. Je l'avais essayé, mais comme il ne marchait pas, j'avais essayé plein d'autres trucs.
    Mais en revenant sur l'appendChild, j'ai fini par trouver...
    Pour l'instant, c'est pas très joli, mais je vais essayer d'améliorer.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function addCSS(dest, text)
    {
        sendInfo("addCSS");
        logger(dest); // dest est un XMLDocument
        sendInfo(text); // text est style.css
     
        let obj = dest.createElement("link");
        obj.setAttribute("rel", "stylesheet");
        obj.setAttribute("href", text);
        // sendObj(obj);
     
        dest.childNodes[0].childNodes[0].appendChild(obj);
    }
    Le premier 'childNodes[0]' est la balise 'html'.
    Le deuxième 'childNodes[0]' est la balise 'head'.

    Avant, c'est comme si je voulais ajouter une deuxième balise 'html'.

    Ce qui est étonnant, c'est que je n'avais pas le problème avec le charset, ça m'a mis sur une mauvaise piste...

    Merci encore,
    Cordialement,

  5. #5
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 666
    Par défaut
    qu'utilisez vous pour générer l'objet "xmldocument" et pour récupérer ensuite le résultat ?

  6. #6
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2022
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2022
    Messages : 5
    Par défaut récupération document
    Salut,

    J'utilise:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    doc = document.implementation.createDocument(null, lang, null);
    et c'est ce 'doc' que j'utilise comme paramètre à addCSS.

    Cordialement,

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [DOM] Ajouter un fichier XML dans DOM
    Par Flam dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 16/10/2009, 12h20
  2. [DOM] Ajout sur un fichier xml avec DOM
    Par karimoscapitated dans le forum Format d'échange (XML, JSON...)
    Réponses: 0
    Dernier message: 30/12/2008, 22h34
  3. Réponses: 6
    Dernier message: 04/06/2008, 10h48
  4. [DOM] [XSL] Convertir un fichier XML vers un fichier CSS
    Par Invité dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 23/03/2007, 10h49
  5. ajout evenements dans le fichier CSS
    Par cosminutza dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 20/11/2004, 14h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo