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 :

[AJAX] Chargement dynamique de CSS


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 17
    Points : 3
    Points
    3
    Par défaut [AJAX] Chargement dynamique de CSS
    Salut à tous,

    J'ai un gros soucis avec CSS et AJAX.
    En gros, j'obtiens un résultat différent avec AJAX et sans, en utilisant le même fichier CSS.
    Il est un petit peu difficile d'expliquer exactement ce qu'il se passe comme cela, aussi je vais vous donner ce qu'il faut pour le répliquer.

    Voila ce que ça donne sans AJAX. Les box suivent le resize de la fenêtre.. sous IE6 du moins, pas encore testé sous firefox.

    <html>
    <head>
    <meta http-equiv="Content-Language" content="fr-be">
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <style>
    .menu {
    width: 20%;
    border: 1px solid #000000;
    padding: 1em ;
    }
    .content {
    position: absolute;
    right: 1;
    border: 1px solid #000000;
    padding: 1em 1%;
    width: 80%;
    }
    </style>
    <title>Universal Client</title>
    </head>

    <body>
    <div class="content">
    content
    </div>
    <div class="menu">
    menu
    </div>
    </body>
    </html>

    Reproduire sous ajax :

    Mettre ce script de DynamicDrive en place :
    http://www.dynamicdrive.com/dynamici...jaxcontent.htm
    et l'appeler avec le CSS que vous avez externalisé :
    <a href="javascript:ajaxpage('test.htm', 'contentarea'); loadobjs('MesBoxQuiFoirent.css')">test</a>
    Le lien est chargé dynamiquement et là, le résultat du CSS n'est pas pareil. Le box de droite se trouve tout a droite et ne touche plus du tout au premier.
    Donc, comment dire... euh.. HELP

    Merci,
    Seb.

  2. #2
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Le problème est connu... mais je ne crois pas qu'une solution aie été trouvée...

    J'ai bien créé une fonction setInnerHTML qui résout quelques problèmes comme la "disparition" d'ID, la non-évalution de script, ... mais je ne crois pas que cela résolve ce problème (du moins on ne m'a pas averti de son effecicatié à ce genre de problème).

    Le code se trouve la : http://www.developpez.net/forums/sho...9&postcount=18

    Tu peux tjrs essayer et me dire si ca marche, mais j'ai des doutes...

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Points : 1 419
    Points
    1 419
    Par défaut
    1° Appeler ton fichier CSS.

    Normalement, ceci devrait fonctionner.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    var cssheet = document.createElement('link');
    cssheet.setAttribute('rel','alternate stylesheet');
    cssheet.setAttribute('type','text/css');
    cssheet.setAttribute('href',tonUrl);
    cssheet.setAttribute('media','all'); // éventuellement.
    document.getElementsByTagName('head').appendChild(cssheet);
    Une autre solution consisterait à nommer ta seconde feuille css dans le <head> de ton fichier HTML mais comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <link rel="alternate stylesheet" type="text/css" href="TonURL" media="all" />
    .

    2° Activer ce CSS.
    Trouvé sur le site que tu mentionnes : http://www.dynamicdrive.com/dynamici...etswitcher.htm

Discussions similaires

  1. Réponses: 30
    Dernier message: 19/03/2016, 09h50
  2. Réponses: 5
    Dernier message: 11/04/2012, 12h57
  3. Réponses: 1
    Dernier message: 03/02/2012, 15h28
  4. Flex Chargement dynamique css
    Par sorilazer dans le forum Flex
    Réponses: 0
    Dernier message: 22/04/2011, 01h21
  5. Chargement dynamique de la CSS dans la MasterPage
    Par titan_33 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 05/09/2008, 10h19

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