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 :

Du javascript dans du javascript


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 14
    Points : 3
    Points
    3
    Par défaut Du javascript dans du javascript
    Bonjour

    Je suis novice. Ce code fonctionne-t-il ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <script type="text/javascript">
    var random_number = Math.random();
    if (random_number < .5){
    <!--
    <a href="http://tracking.publicidees.com/clic.php?partid=CCCC&progid=CCCC&promoid=CCCC" target="_blank"><img src="http://tracking.publicidees.com/banner.php?partid=CCCC&progid=CCCC&promoid=CCCC" border="0"></a>
    <script type="text/javascript" src="http://tracking.publicidees.com/showbanner.php?partid=CCCC&progid=CCCC&promoid=CCCC"></script>
    //-->
    } else {
    <!--
    <a href="http://tracking.publicidees.com/clic.php?partid=25352&progid=XXXX&promoid=XXXX" target="_blank"><img src="http://tracking.publicidees.com/banner.php?partid=25352&progid=XXXX&promoid=XXXX" border="0"></a>
    <script type="text/javascript" src="http://tracking.publicidees.com/showbanner.php?partid=XXX&progid=XXXX&promoid=XXXX"></script>
    //-->
    }
    </script>
    Merci

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 135
    Points : 44 923
    Points
    44 923
    Par défaut
    Bonjour,
    Ce code fonctionne-t-il ?
    j'e n'en sais rien et toi qu'en penses tu, as tu au moins essayé?

    Juste pour info, quand même, reprend les bases sur les commentaires en javascript et la structuration d'un fichier HTML.

  3. #3
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Points : 6 755
    Points
    6 755
    Par défaut
    Citation Envoyé par kvf300 Voir le message
    En JavaScript ça se lit : inférieur à, négation de, décrémentation.


  4. #4
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Si ce que tu cherches à faire est de charger un fichier Javascript en Javascript, alors ça s'appelle un script loader. Ce genre d'outils fait simplement une requête AJAX et injecte dynamiquement le résultat. Tu peux de la même façon charger dynamiquement une autre page HTML ou une autre feuille de style CSS.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 14
    Points : 3
    Points
    3
    Par défaut
    Oui pardon je me suis trompé voici le code corrigé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <script type="text/javascript">
    var random_number = Math.random();
    if (random_number < .5){
    <a href="http://tracking.publicidees.com/clic.php?partid=CCCC&progid=CCCC&promoid=CCCC" target="_blank"><img src="http://tracking.publicidees.com/banner.php?partid=CCCC&progid=CCCC&promoid=CCCC" border="0"></a>
    <script type="text/javascript" src="http://tracking.publicidees.com/showbanner.php?partid=CCCC&progid=CCCC&promoid=CCCC"></script>
    } else {
    <a href="http://tracking.publicidees.com/clic.php?partid=25352&progid=XXXX&promoid=XXXX" target="_blank"><img src="http://tracking.publicidees.com/banner.php?partid=25352&progid=XXXX&promoid=XXXX" border="0"></a>
    <script type="text/javascript" src="http://tracking.publicidees.com/showbanner.php?partid=XXX&progid=XXXX&promoid=XXXX"></script>
    }
    </script>
    Celui ci est-t-il bon ?

    Merci

  6. #6
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 135
    Points : 44 923
    Points
    44 923
    Par défaut
    Il y a toujours un mélange de code HTML dans du code javascript, cela va avoir du mal à fonctionner.

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 14
    Points : 3
    Points
    3
    Par défaut
    Merci. Alors comment faire pour afficher une fois sur deux l'une ou l'autre de ces 2 bannières ?

    Merci

  8. #8
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 135
    Points : 44 923
    Points
    44 923
    Par défaut
    Il te suffit de charger dynamiquement le script en incorporant les bonnes valeurs des variables.

  9. #9
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Ca m'ennuie de dire ça, parce que je prépare justement un article sur les bienfaits du templating coté client, mais peut-être que tu aurais moins de misères à faire ça côté serveur, en PHP par exemple.

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 14
    Points : 3
    Points
    3
    Par défaut
    N'y connaissant rien au javascript pourriez vous me donner le code pour afficher <a href=""Lien vers mon site A" >Site A</a> une fois sur deux et <a href=""Lien vers mon site B" >Site B</a> l'autre fois sur deux.

    Merci à vous

  11. #11
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Points : 6 755
    Points
    6 755
    Par défaut
    Re kfv300,

    pour répondre à ta dernière question, voici un code prêt-à-l'emploi que je vais tenter d'expliquer :

    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
    var receveur = document.getElementById("conteneur-pub"); // je récupère l'élément dans lequel je vais insérer le lien
     
    // je prépare le lien
    var lien = document.createElement("a");
    lien.target = "_blank";
     
    // ça, tu connais ;)
    var random_number = Math.random();
    if (random_number < 0.5) {
      lien.href = "URL_du_site_A";
      lien.textContent = "site A";
    } else {
      lien.href = "URL_du_site_B";
      lien.textContent = "site B";
    }
     
    // enfin, j'insère le lien
    receveur.appendChild(lien);
    Comme tu le vois il faut que tu saches à l'avance à quel endroit dans ta page tu veux insérer ton lien. Avec les scripts de publicité, ce n'est pas forcément le cas ; je reviendrai là-dessus.


    Pour cet exemple j'ai utilisé des méthodes du DOM : createElement et appendChild. Ce n'est pas le plus facile pour un débutant, mais elles sont intéressantes à connaître car elles font précisément ce qu'on leur demande. Une autre solution est d'utiliser innerHTML qui permet de taper directement du code HTML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    receveur.innerHTML = "<a href='URL_du_site_A'>site A</a>";
    C'est légèrement mois efficace car le moteur JavaScript va devoir faire appel à l'analyseur HTML pour ensuite utiliser « sous le capot » les méthodes DOM. Et personnellement, je trouve qu'un script utilisant innerHTML est plus difficile à maintenir.


    Pour insérer le lien comme je l'ai déjà dit, c'est mieux de connaître l'élément qui va le recevoir. Dans mon exemple j'ai supposé qu'il existait dans la page une <div id="conteneur-pub"></div>. Si tu proposes ton code publicitaire à des développeurs tiers, tu peux leur imposer d'avoir tel ou tel élément avec tel ou tel id dans leur page, mais ils trouveront ça contraignant.
    Il y a toujours la vieille solution d'utiliser document.write(), mais elle est déconseillée.
    Le mieux est de détecter l'emplacement grâce à… la balise script qui inclut justement ton script.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var script = document.currentScript;
    var receveur = script.parentNode;
     
    // ensuite, on connaît la chanson
    receveur.appendChild(lien);
    Pour faire plus court :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.currentScript.parentNode.appendChild(lien);

    Il reste un dernier problème : les scripts que tu cherches à insérer. Ils ne sont pas exécutés quand on les insère dynamiquement. Comme l'a dit Sylvain, il va falloir que tu fasses du script loading. Je te renvoie à son post…

Discussions similaires

  1. cgi/javascript : appeler fonction javascript dans code cgi, need help!
    Par Mr.ux dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 06/12/2007, 08h33
  2. Javascript dans un formulaire
    Par MagicManu dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 26/10/2004, 12h25
  3. Réponses: 5
    Dernier message: 13/08/2004, 16h40
  4. Réponses: 2
    Dernier message: 08/08/2003, 18h30
  5. [web] insertion javascript dans du perl
    Par laluna dans le forum Web
    Réponses: 3
    Dernier message: 28/07/2003, 10h50

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