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 :

Création dynamique d'une feuille de style


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 187
    Par défaut Création dynamique d'une feuille de style
    Bonjour,
    Je cherche à créer un nœud <style> dans le <head> :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    var style = document.createElement("style");
    style.type = "text/css";
    var styleTxt = document.createTextNode(".slider{ position : relative; } .slider_cursor{ position : absolute; left : 0; top : 0; }");
    alert('1');
    style.appendChild(styleTxt);
    alert('2');
    var tmp = document.getElementsByTagName('head');
    tmp[0].appendChild(style);
    Ceci marche bien avec FF et Safari mais "oh surprise" pas avec IE. Ce dernier bloque sur style.appendChild(styleTxt);
    J'ai essayé avec style.innerHTML sans succés.
    Avez vous une idée ? Merci d'avance.

  2. #2
    Membre Expert
    Avatar de jbrasselet
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2006
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 022
    Par défaut
    Il te donne quoi comme erreur?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 187
    Par défaut
    Désolé je ne trouve pas la console d'erreur de IE7.

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    oulà c'est pas comme ça du tout
    jette plutot un oeil sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    document.styleSheets[0].cssRules[1] pour Firefox et consors
    document.styleSheets[0].rules[2] pour IE4 et >
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 187
    Par défaut
    Merci pour la réponse je ne connaissais pas cela,
    Mais voici ma problèmatique :
    J'ai un javascript dans un fichier externe.
    J'ajoute ce script via les balises <script> .
    Dans ma page j'ai des <div> utilisés par mon script qui ont une classe css (.slider et .slider_cursor).
    Il faut que j'ajoute dans mon fichier externe, lorsqu'il se charge, des régles css pour ces 2 classes.
    Le problème est que la page HTML posséde une, plusieurs ou aucune feuille de style. Avec document.styleSheets je ne sais quelle feuille selectionner et je ne suis meme pas sur qu'il en existe une. De plus la déclaration de mon script ce trouve peut être après celle des feuilles de style donc pas encors connues au moment de l'éxécution.
    C'est pour cela que je voulais créer tous simplement un nouveau noeud <style> dans le <head>.
    Si vous m'avez compris, quelques suppositions ?

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    En ayant les feuilles déja linkées ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <html>
     
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>Toggle css</title>
    <link id="css1" rel="stylesheet" href="mystyle1.css" type="text/css" media="screen" />
    <link id="css2" rel="stylesheet" href="mystyle2.css" type="text/css" media="screen" />
    <script language="JavaScript">
    function togglecss(){
    document.getElementById('css1').disabled =!document.getElementById('css1').disabled;
    document.getElementById('css2').disabled =!document.getElementById('css2').disabled;
     }
    </script>
    </head>
    <body onload="document.getElementById('css2').disabled=true">
    ce texte est de la couleur attribuée pas le fichier css<br/>
    <input type="button" value="toggle css" onclick="togglecss()" />
    </body>
    </html>
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 187
    Par défaut
    Mon javascript éxterne gére des barres "glissières".
    Je veux intégrer ce composant dans n'importe que page en ajoutant juste la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script type="text/javascript" src="_utilitaire/slider.js"></script>
    indépendemment des élément dejà present dans le <head>
    et en ajoutant mon composant dans le <body>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <div class="slider">
        <div class="slider_track"><img src="_medias/track2.gif" alt="" title="" /></div>
        <div class="slider_cursor" onmousedown="sliderVerticalStart(this,event,35,94,afficherTaux2)" >
            <img src="_medias/cursor2.gif" alt="" title="" ondrag="return false;" />
        </div>
    </div>
    Le script slider.js doit donc se charger d'ajouter les styles pour les class slider et slider_track.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/06/2010, 13h14
  2. Ajout dynamique d'une feuille de style
    Par Invité dans le forum ASP.NET
    Réponses: 5
    Dernier message: 13/06/2008, 12h15
  3. Attribuer une feuille de style CSS à un objet crée dynamiquement
    Par Sergejack dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 30/10/2007, 10h23
  4. Ajout dynamique d'un lien vers une feuille de style.
    Par maa dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 31/03/2007, 21h42
  5. Rattacher une feuille de style a un XML existant
    Par aour dans le forum XML/XSL et SOAP
    Réponses: 5
    Dernier message: 08/10/2002, 22h07

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