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 :

Ajout/Suppression de la balise <script></script> ?


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 17
    Par défaut Ajout/Suppression de la balise <script></script> ?
    Bonsoir les développeurs,

    Je fais appel à votre savoir pour me venir en aide

    Je travaille avec Aweber, un service marketing de solutions emails. J'ai créé un webform dans mon interface Aweber et le script permettant de l'insérer sur ma page est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <script type="text/javascript" src="http://forms.aweber.com/form/xx/xxxxxxxxxx.js"></script>
    Dans Aweber, j'ai paramétré la configuration du webform de manière à ce qu'il apparaisse sous la forme d'une lightbox au chargement de la page.

    Cependant, je désire modifier ce comportement et ne faire apparaître la lightbox qu'après clic sur un lien. Ce lien, le voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var link = '<li><a href="#" onclick="housingRequest();">>> Fill out an Housing Request</a></li>';
    J'ai donc créé la fonction housingRequest() qui s'y rapporte :

    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
     
    function housingRequest(){
    		if(window.XMLHttpRequest)
    			xhr = new XMLHttpRequest();
    		else
    			xhr = new ActiveXObject("Microsoft.XMLHTTP");
     
    		xhr.onreadystatechange = function() {
    			if (xhr.readyState == 4) {
    				if (xhr.status == 200 || xhr.status == 0) {
    					document.getElementById("aweber").src = 'http://forms.aweber.com/form/xx/xxxxxxxxxx.js';
    				}
    			}
    		};
    		xhr.open("GET", "./apartments/", true);
    		xhr.send(null);
    }
    Et dans mon HTML, la balise <script></script> pourvue d'un id pour que mon JavaScript puisse y accéder :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script id="aweber" type="text/javascript"></script>
    Le problème qui se pose est le suivant : lorsque je clique sur le lien hypertexte la lightbox apparaît sur mon bel écran Je ferme alors la lightbox. Mais lorsque je clic à nouveau sur le lien hypertexte, plus rien ne se passe.

    Je pense pouvoir comprendre qu'une fois que le script est chargé en mémoire, cliquer sur le lien n'a plus aucun effet puisque le script est chargé. Je suis à la recherche d'un moyen qui me permettrait d'afficher la lightbox Aweber à chaque fois que je cliquerais sur le lien hypertexte. Comment faire ? Est-il possible de "supprimer" la balise script une fois que la lightbox s'est affichée, de manière à ce qu'elle soit "recréée" au prochain clic ?

    Merci d'avance et bonne soirée

    EDIT : D'après mes recherches, supprimer un noeud avec removeChild() ne résoudra pas le problème. Le noeud ne sera pas supprimé en mémoire, uniquement sur le flux de la page.

  2. #2
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 17
    Par défaut
    Finalement, j'ai trouvé une solution, qui n'est peut-être pas la meilleure je le conçois mais au moins ça fonctionne. À chaque clic, je supprime ma balise <script> avec removeChild() et je la recrée dans le DOM avec appendChild() en attribuant à "src" le lien vers le JS Aweber.

  3. #3
    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
    Perso je pense que le souci ne provient pas de là ...

    j'aurais simplement inhibé le href
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     onclick="housingRequest();return false;"
    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 !

  4. #4
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 17
    Par défaut
    Merci d'avoir pris part à la discussion même si le sujet était résolu. Je viens de tester ta proposition, et ça ne fonctionne pas. Mais bien essayé

  5. #5
    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
    Résolu ?
    Oui enfin prendre un bazooka pour tuer une moustique ...

    L'inhibation du href sert à rester sur la même page et éviter le rechargement, donc il est indispensable pour rester sur la même page.
    Les souci est ailleurs, et, je ne comprends pas la fonction dans le callback de l'ajax qui attribue un scr vers un script ??? quelle est cette balise awber ? une balise script ?

    Donc laisse le return false dans le onclick et mets un simple alert dans le callback.
    Pour moi le problème vient du callback qui induit un conflit sur la page.
    Que dit la console firebug ? Tu as des messages d'erreur ?
    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 !

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

Discussions similaires

  1. Scripts NANT ajout d'attribut dans balise property
    Par fanfan49 dans le forum Général Dotnet
    Réponses: 1
    Dernier message: 08/07/2008, 17h17
  2. [js] suppression du contenu balise script
    Par TERRIBLE dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 12/02/2007, 08h45
  3. ajout éléments dans une balise select
    Par wehtam dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 18/08/2005, 14h03
  4. Ajout/Suppression dynamique des lignes dans une table
    Par codexomega dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 13/08/2005, 18h50

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