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 :

Balise <script> dans InnerHtml


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 153
    Par défaut Balise <script> dans InnerHtml
    Bonsoir à tous,
    Je galère depuis 15h... Il est 23h. Je viens donc demander votre aide
    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script>alert("ok")</script>[/cpp] et [cpp]<script>alert("ok")<\/script>
    fonctionnent tous les deux sans souci.
    Mais mon script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script>var advst_ssi_redir_url = "";var advst_ssi_redir_txt = "Suivant >>";var clickssi = function (nb_sel, nb_unsel) { if (nb_unsel == 0) { window["validerssi"] = function () { document.location.href = "register22.php?pseudo=<? echo "$pseudo"; ?>&pass=<? echo "$pass"; ?>" } }};var advst_ssi_bordure = "#FFFFCC";var advst_ssi_separateur = "#CCCCCC";var advst_ssi_texte = "#000000";var advst_ssi_fond = "#FFFFCC";var advst_ssi_email = "antoine@domaine.com";var advst_ssi_nom = "holley";var advst_ssi_prenom = "antoine";var advst_ssi_adresse = "";var advst_ssi_cp = "";var advst_ssi_ville = "";var advst_ssi_sexe = "H";var advst_ssi_situation = "";var advst_ssi_ip = "";var advst_ssi_login = "";var advst_ssi_mdp = "";var advst_ssi_age = "  ";var advst_ssi_date = "";var advst_ssi_jour = "24";var advst_ssi_mois = "11";var advst_ssi_annee = "1987";<\/script><script src="http://externelink.com/co.php?zoneid=20607"><\/script>
    ne fonctionne PAS (ne s'affiche pas) avec <\/script> alors qu'il fonctionne avec </script>...
    Or, j'ai absolument besoin de <\/script> car ce script sera installé dans un InnerHTML (ne se charge qu'après une action javascript).
    Merci par avance de me donner une alternative... pour que je puisse dormir tranquille ! Lol
    Bonne soirée,
    Antoine

  2. #2
    Expert confirmé
    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 : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Par défaut
    Utiliser du JavaScript pour générer du JavaScript ? Hmm C'est fort problable qu'il y a un mauvais choix de conception.

    Quoi qu'il en soit :
    Code JS : Sélectionner tout - Visualiser dans une fenêtre à part
    document.location.href = "register22.php?pseudo=<? echo "$pseudo"; ?>&pass=<? echo "$pass";?>";

    Il y a du code serveur. Au fait, quand tu dis « ne fonctionne pas », ça veut dire quoi ? Si tu as le message « missing ; before statement » ou encore « ';' attendu », je te parie ce que tu veux que le code serveur n'a pas été interprété quand il arrive côté client.

    Sinon tout ce que je peux te dire c'est… La nuit porte conseil
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    j'ai absolument besoin de <\/script> car ce script sera installé dans un InnerHTML
    Quel est le rapport ?

    Citation Envoyé par Watilin
    Utiliser du JavaScript pour générer du JavaScript ? C'est fort problable qu'il y a un mauvais choix de conception.
    +1

    Pourquoi faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    elem.innerHTML = '<script>alert(\'OK\')</script>';
    plutôt qu'un simple
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 153
    Par défaut
    Si je pouvais éviter le InnerHTML je l'aurais fait, bien sûr !

    Avec </script> le script s'affiche niquel.
    Avec <\/script> rien ne s'affiche. Même pas une erreur. Même pas ".

    Pourtant, j'ai besoin de <\/script> (ou d'une alternative). Car en mettant </script> dans InnerHTML, bien sûr, c'est mal interprété et on se retrouve avec '"; (ou des choses comme cela).

    Je vous explique quand même pourquoi j'ai besoin d'InnerHTML, car sinon cela va être remis en question : j'ai un formulaire d'inscription. Une fois que l'utilisateur a rempli tous les champs, et AVANT d'envoyer le formulaire, un événement onChange fait apparaître juste avant le bouton d'envoi du formulaire une proposition d'inscription à une offre partenaire (mon fameux script). Ce script ne pouvant pas être affiché avant que tous les champs soient remplis (volonté de mon partenaire, car quand on clique sur "recevoir l'offre", ça envoie automatiquement les champs).

    Merci de votre aide.

  5. #5
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par ingeniomatique
    Si je pouvais éviter le InnerHTML je l'aurais fait, bien sûr !
    D'après moi, tu peux mais tu ne le sais pas encore

    Alors la première des choses : es-tu conscient de l'inutilité d'ajouter des scripts avec innerHTML vu qu'ils ne sont pas interprétés ?

    D'autre part, qu'est-ce qui t'empêche de contrôler si ton formulaire est complet (ça j'imagine que tu le fais déjà) et lorsque c'est le cas, d'ajouter ton nouveau champ directement en JavaScript ? J'ai beau relire ton message précédent, je n'arrive pas à comprendre l'utilité du innerHTML
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 153
    Par défaut
    Oui je vois la différence entre côté client et côté serveur.

    Peut être que je ne sais pas encore qu'on peut faire différemment, effectivement

    Voici comment je procède :
    1- Sur le dernier champ du formulaire, il y a un évènement onChange qui vérifie que tout le formulaire soit complet. Tant que ce n'est pas le cas, il y a un <div> "complet" entre la fin du formulaire et le "Submit" ; ce div est vide.
    2- Si la verif montre que le formulaire est bien complet, ce div "complet" doit afficher mon script d'offre partenaire. <script>....</script> (une quinzaine de lignes avec de surcroît récupération de certains champs du formulaire).
    => C'est là que je bloque, car j'utilise InnerHTML et je n'ai pas trouvé d'alternative.

    Merci par avance.

Discussions similaires

  1. Balises HTML dans innerHTML
    Par Anonyme1784 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 03/07/2015, 17h31
  2. balise <script> dans innerhtml
    Par omageus dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 07/06/2008, 00h39
  3. Réponses: 2
    Dernier message: 15/02/2008, 17h47
  4. [PHP-JS] pb lecture script php dans une fonction au démarrage
    Par jerome38000 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 09/02/2005, 15h07
  5. Appel d'un script SQL dans une procdure stockée
    Par doudou10000 dans le forum Oracle
    Réponses: 10
    Dernier message: 01/12/2004, 10h01

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