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 :

[DOM] Inclure un script


Sujet :

JavaScript

  1. #1
    Membre éclairé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Points : 872
    Points
    872
    Par défaut [DOM] Inclure un script
    Bonjour,

    Je bute sur le même problème depuis des jours..

    Je développe une appli d'entreprise sous forme d'interface web, avec l'utilisation d'Ajax via la librairie prototype (evalScripts activé) pour le chargement du contenu. J'utilise aussi Smarty pour séparer l'applicatif de la présentation.

    Mon problème :
    Sous IE comme FF, lorsque j'insère ce morceau de code

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    <link rel="stylesheet" type="text/css" href="/css/date.css" />
    <table class="ds_box" cellpadding="0" cellspacing="0" id="ds_conclass" style="display:none;">
    <tr><td id="ds_calclass"></td></tr>
    </table>
    <script type="text/javascript" src="/js/dt_form.js"></script>
    <script type="text/javascript" src="/js/DatePicker.js"></script>
    
    <h1>R&eacute;diger une DT</h1>
    
    <form name="dt_form1" method="POST" action="/dt/dt_form.php">
        <div class="form_block">
        <table rules="none" width="90%" border="0">
            <tr><td><span class="label">Demandeur : </span></td><td>{$demandeur}<input type="hidden" name="dem" value="{$demandeur}"/></td></tr>
            <tr><td><span class="label">Date : </span></td><td>{$datedem}<input type="hidden" name="datedem" value="{$datedem}"/></td></tr>
            <tr><td><span class="label">Heure : </span></td><td>{$heure}<input type="hidden" name="heuredem" value="{$heure}"/></td></tr>
        </table>
        </div>
    
        <div class="form_block">
        <table rules="none" width="90%" border="0">
            <tr><td><span class="label">Imputation : </span></td>
                <td><select class="champ" name="select_imput">
                    {html_options values=$imput_index selected=$imput_selected output=$imput}
                </select></td>
            </tr>
            <tr><td><span class="label">Support : </span></td>
                <td><select class="champ" name="select_support">
                    {html_options values=$support_index selected=$support_selected output=$support}
                </select></td>
            </tr>
            <tr><td colspan="2"><div id="support">support</div></td></tr>
        </table>
        </div>
    
        <div class="form_block">
        <table rules="none" width="90%" border="0">
            <tr><td><span class="label">Date délai : </span></td><td><input name="datedelai" value="cliquez..." type="text" size="10" maxlength="10" onclick="ds_sh(this);" onfocus="ds_sh(this);" /></td></tr>
        </table>
        </div>
    
        <div class="form_block">
            <span class="label">Types de Travaux : </span>
            <div>   {section name=id_tt loop=$typtrav}
                    <label><input type="checkbox" value="{$smarty.section.id_tt.index}" name="typtrav[]" id="typtrav_{$smarty.section.id_tt.index}"></input>{$typtrav[id_tt]}</label>
                    {/section}
            </div>
        </div>
    
        <div class="form_block">
        <table rules="none" width="90%" border="0">
            <tr><td><span class="label">Nature : </span></td><td><input name="nature" type="text" size="100" maxlength="80" /></td></tr>
            <tr><td><span class="label">Objectif : </span></td><td><input name="objectif" type="text" size="100" maxlength="80" /></td></tr>
        </table>
        </div>
        
        <!-- cet input caché sert à transmettre l'étape de remplissage du formulaire-->
        <input type="hidden" name="form_state" value="dt_form1" />
        
        <table rules="none" border="0" style="width:760px;margin-top:30px;">
            <tr><td></td><td style="text-align:right"><a href="#" onclick="dt1_submit()">Etape suivante</a></td></tr>
        </table>
        
    </form>
    aucun des scripts n'apparaît dans le DOM (Firebug et IE ToolBar). Le reste est inséré normalement. Je suis obligé d'insérer ces scripts dans le body...

    Quand je regarde la source de la page dans IE ou FF, j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <link rel="stylesheet" type="text/css" href="/css/date.css" />
    <table class="ds_box" cellpadding="0" cellspacing="0" id="ds_conclass" style="display:none;">
    <tr><td id="ds_calclass"></td></tr>
    </table>
    <h1>R&eacute;diger une DT</h1>
    <form name="dt_form1" method="POST" action="/dt/dt_form.php">
        <div class="form_block">
    .......
    Je désespère !!
    • Mon blog PHP : http://blog.alterphp.com
    • "Peace cannot be kept by force, it can only be achieved by Understanding" -- Albert Einstein

  2. #2
    Membre confirmé Avatar de yjuliet
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Août 2006
    Messages
    362
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 362
    Points : 460
    Points
    460
    Par défaut
    en dehors des questions de moment de chargement, pourquoi ne peux-tu pas créer les noeuds <script> dans le head à l'aide des fonctions DOM de JavaScript, lors du chargement du contenu ?

  3. #3
    Membre éclairé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Points : 872
    Points
    872
    Par défaut
    ça marche si j'insère mon script directement, entre 2 balises {literal} (smarty)..
    • Mon blog PHP : http://blog.alterphp.com
    • "Peace cannot be kept by force, it can only be achieved by Understanding" -- Albert Einstein

  4. #4
    Membre éclairé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Points : 872
    Points
    872
    Par défaut
    Citation Envoyé par yjuliet
    en dehors des questions de moment de chargement, pourquoi ne peux-tu pas créer les noeuds <script> dans le head à l'aide des fonctions DOM de JavaScript, lors du chargement du contenu ?
    je vais essayer...

    si je fais un truc comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var head = document.getElementByTagName('head');
    var newscript = createElement('script');
    newscript.type = 'text/javascript';
    newscript.src = 'js/DatePicker.js';
    head.appendChild(newscript);
    ça passe ça ? je savais pas qu'on pouvait ajouter un élément au head en fait...
    • Mon blog PHP : http://blog.alterphp.com
    • "Peace cannot be kept by force, it can only be achieved by Understanding" -- Albert Einstein

  5. #5
    Membre éclairé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Points : 872
    Points
    872
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var head = document.getElementsByTagName('head')[0];
    var newscript = document.createElement('script');
    newscript.type = 'text/javascript';
    newscript.src = 'js/DatePicker.js';
    head.appendChild(newscript);
    Comme ça c'est bon !
    Merci yjuliet !
    • Mon blog PHP : http://blog.alterphp.com
    • "Peace cannot be kept by force, it can only be achieved by Understanding" -- Albert Einstein

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

Discussions similaires

  1. inclure un script js dans php
    Par wisstiti3 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 28/09/2007, 02h20
  2. [PHP-JS] inclure un script js ds php
    Par wisstiti3 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 27/09/2007, 14h26
  3. Inclure un script Ant dans un script Ant
    Par Rémy29 dans le forum ANT
    Réponses: 2
    Dernier message: 03/08/2007, 09h46
  4. [DOM] Inclure un élément XML au milieu d'une portion de texte
    Par Yogui dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 04/07/2007, 12h47
  5. [DOM] inclure fichier javascript en javascript
    Par italiasky dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 21/05/2007, 13h29

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