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 :

Appeler un sous script javascript -> ?


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2009
    Messages
    186
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 186
    Points : 80
    Points
    80
    Par défaut Appeler un sous script javascript -> ?
    Bonjour à tous,
    Voilà ce qui m'amène aujourd'hui : J'aimerais pouvoir appeler, depuis un javascript, un autre javascript (externe, donc), un peu à la façon du fameux "Gosub" du langage "basic" (par exemple) -> Est-ce possible, SVP ?

    Par avance Merci pour toute suggestion que vous pourriez avoir !

  2. #2
    Membre expérimenté Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Points : 1 519
    Points
    1 519
    Par défaut
    je ne connais pas gosub, donc je ne suis pas sûr de partir dans la bonne réponse, mais pour ajouter un nouveau fichier javascript à un document depuis une source tu peux faire comme ceci (au fait, la question revient souvent donc prend le temps de faire une recherche la prochaine fois avant de poser une question)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var script = document.createElement('script');
    script.src = 'http://www.tonsite.com/tonscript.js';
    //script.type = 'text/javascript'; // optionnel, jQuery ne le fait pas donc je pense qu'on peut aussi s'en passer.
    document.getElementsByTagName('head')[0].appendChild(script);

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Août 2009
    Messages
    186
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 186
    Points : 80
    Points
    80
    Par défaut
    Merci Willpower pour ta proposition !

    L'intérêt du "Gosub" est de pouvoir imbriquer un code dans un autre code comme si il faisait partie intégrante de ce code -> Je viens d'essayer avec le code que tu m'as proposé (voir ci-dessous) et, effectivement, en regardant avec "Firebug", je vois que "TEST1" et "TEST2" ont bien été chargés dans mon navigateur...

    Ceci dit, seul le titre "<H3>Hum1...</H3>" est affiché à l'écran !
    -> Comment puis-je faire pour que le titre "<H3>Hum2...</H3>" (contenu dans "TEST2.js") s'affiche également (de façon "imbriquée") ?

    PS: Pour information, j'ai bien fait ma "petite recherche" avant de mettre ce post, mais c'est justement parce que je n'ai pas su trouver que j'ai entré ce post. Ceci dit, je reste ouvert à toute piste extérieure ou propre à ce site qui puisse m'aider à résoudre ma problématique du moment !

    TEST1.js
    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     
    <html lang="fr">
    <head>
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     
      <title></title>
     
      <script type="text/javascript">
        document.write("<H3>Hum1...</H3>"); 
     
    	var script = document.createElement('script');
    	script.src = 'TEST2.js';
    	//script.type = 'text/javascript'; // optionnel, jQuery ne le fait pas donc je pense qu'on peut aussi s'en passer.
    	document.getElementsByTagName('head')[0].appendChild(script);
      </script>
    </head>
    <body>
     
    <!-- Document -->
     
    </body>
    </html>
    TEST2.js
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    	document.write("<H3>Hum2...</H3>");

  4. #4
    Membre expérimenté Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Points : 1 519
    Points
    1 519
    Par défaut
    arg, des document.write ... j'aime pas trop beaucoup ça.

    mais soit, allons jusqu'au bout, la solution devient donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.write("<script type='text/javascript' src='TEST2.js'></sc"+"ript>");
    nb: j'ai écris la balise fermante de script en la divisant en 2 strings pour éviter un bug "normal" :

    au lieu d'interpréter ceci :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     // ouverture de la balise script
      <script type="text/javascript">
        document.write("<H3>Hum1...</H3>"); 
        document.write("<script src='TEST2.js'></script>");
    // fermeture de la balise script
      </script>

    ta page html va interpréter ceci :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    //ouverture de la balise script
      <script type="text/javascript">
        document.write("<H3>Hum1...</H3>"); 
    // code inachevé et donc erreur
        document.write("<script src='TEST2.js'>
    // fermeture de la balise script
       </script>
    // code non html
    ");
    // fermeture d'une balise script en trop
      </script>

  5. #5
    Membre expérimenté Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Points : 1 519
    Points
    1 519
    Par défaut
    mais fait gaffe au comportement qui diffère sous les navigateurs pour le document.write :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        document.write("<H3>Hum1...</H3>"); 
        document.write("<script src='TEST2.js'></sc"+"ript>");
        document.write("<H3>Hum3...</H3>");
    va t'afficher :
    Hum1
    Hum2
    Hum3

    sous chrome et firefox

    mais :
    Hum1
    Hum3
    Hum2

    sous IE.

    edit: je te déconseille vivement d'utiliser ce système car ce n'est pas une bonne pratique (du tout).

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Août 2009
    Messages
    186
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 186
    Points : 80
    Points
    80
    Par défaut
    Ok Willpower, ça colle pour moi !
    Effectivement, là, à présent, j'ai bien une imbrication de mon code... et ça s'affiche "correct" à l'écran...

    Ceci dit, vu ce que tu me dis / aux inconvénients de "document.write()", aurais-tu une alternative à me proposer à ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.write("<script type='text/javascript' src='TEST2.js'></sc"+"ript>");
    PS : Là, ça n'est qu'un test, évidemment, car TEST2 comprend en fait plus de 500 lignes de code js -> On est loin du simple et limité "document.write()" -> J'espère que ta suggestion "tiendra la route" quand même !

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Août 2009
    Messages
    186
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 186
    Points : 80
    Points
    80
    Par défaut
    Je précise également que dans l'équivalent de "TEST1.js", en "conditions réelles", il n'y a aucun "document.write" qui soit -> Ca va peut-être "passer" -> Petit test de mon coté... et je reviens !

    ----------------------------

    Bon, ça y est, voilà le "compte-rendu" :
    Désolé, je crois que j'ai parlé un peu vite car, en fait, comme on peut le voir ci-dessous (code observé sur le navigateur), les 2 javascripts ne sont pas imbriqués mais séparés !
    -> Vu la "dynamique" de mon programme, je ne vais pas pouvoir fonctionner comme cela... Est-ce que quelqu'un aurait une autre suggestion qui me permettrait de réaliser une réelle imbrication de TEST2.js dans TEST1.js ?

    PS : Voilà ce que ça me donne, en fait, coté navigateur (Firefox), dans le <Body> :
    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
    <body>
     
    	<script type="text/javascript">
    		document.write("<H3>Hum1...</H3>");
    		document.write("<script type='text/javascript' src='TEST2.js'></sc"+"ript>");
    	</script>
     
    	<h3>Hum1...</h3>
     
    	<script src="TEST2.js" type="text/javascript">
    		document.write("<H3>Hum2...</H3>");
    	</script>
     
    	<h3>Hum2...</h3>
     
    </body>
    et voilà ce que j'aimerais obtenir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <body>
     
    	<script type="text/javascript">
    		document.write("<H3>Hum1...</H3>");
    		document.write("<H3>Hum2...</H3>");
    	</script>
     
    	<h3>Hum1...</h3>
    	<h3>Hum2...</h3>
     
    </body>

Discussions similaires

  1. Problème d'appel d'un script javascript
    Par Jiraiya42 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 03/11/2006, 19h59
  2. Appel d'un script au moyen de Javascript
    Par chris78 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 05/05/2006, 09h57
  3. Réponses: 5
    Dernier message: 19/04/2006, 22h17
  4. Réponses: 2
    Dernier message: 03/04/2006, 18h38
  5. Appel sous script
    Par calimero642 dans le forum Langage
    Réponses: 26
    Dernier message: 21/03/2006, 17h24

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