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

jQuery Discussion :

Comment puis-je injecter du js dans la balise head ?


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut Comment puis-je injecter du js dans la balise head ?
    Bonjour,

    je n'arrive pas à injecter simplement un code js dans la balise HEAD.
    Voici le code en question renvoyé par un serveur PHP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script type="text/javascript" data-idc="123abc">//<![CDATA[ function test() { alert('testabc'); } //]]></script>
    La page reçoit parfaitement ce code via un appel AJAX et quand je fais : Le DOM n'est pas modifié.

    Après plusieurs essais, je suis arrivé à insérer ce code en supprimant le slash de type="text/javascript". Cela marche aussi avec type="text\/javascript" mais le DOM indique du coup exactement type="text\/javascript"
    J'ai aussi essayé en terminant par <\/script> mais là pas plus de succès.

    Bref, le slash semble poser problème soit à javascript soit à jQuery et certainement à moi

    Une idée ?

  2. #2
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Bon comme on est jamais mieux servi que par soi-même, je vais me répondre

    Effectivement, il semblerait qu'il y ait un souci avec ce genre d'injection, il faut contourner le problème. Injecter la ressource sans le type et ensuite avec jQuery sélectionner les scripts n'ayant pas l'attribut [type] et le définir. Cela donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('script:not([type])').attr('type', 'text/javascript');
    Et voilà le tour est joué. Les scripts injectés à la demande sont disponibles.

    Au fait, c'est le même problème si vous injectez du css. Il faudra l'injecter sans le type et ensuite faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('style:not([type])').attr('type', 'text/css');
    Allez bon we

  3. #3
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonsoir.

    Je viens de tester votre ajout de JavaScript dans le « head », je ne vois aucun problème.

    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
    <!doctype html>
    <html lang="fr">
    <head>
    	<meta charset="utf-8">
    	<meta name="Author" content="Daniel Hagnoul">
    	<meta name="description" content="Page type">
    	<title>Page type</title>
    	<style>
    		/* BASE */
    		body {
    			background-color:#ffffff;
    			color:#000000;
    			font-family:sans-serif;
    			font-size:medium;
    			font-style:normal;
    			font-weight:normal;
    			line-height:normal;
    			letter-spacing:normal;
    		}
    		h1,h2,h3,h4,h5 {
    			font-family:serif;
    		}
    		div,p,h1,h2,h3,h4,h5,h6,ul,ol,dl,form,table,img {
    			margin:0px;
    			padding:0px;
    		}
    		p {
    			padding:6px;
    			opacity:0.5;
    		}
    		ul,ol,dl {
    			list-style:none;
    			padding-left:6px;
    			padding-top:6px;
    		}
    		li {
    			padding-bottom:6px;
    		}
     
    		/* TEST */
    	</style>
    	<script charset="utf-8" src="../lib/jqueryui/js/jquery-1.4.2.min.js"></script>
     	<script>
    		$(function(){
    			$('head').append('<script type="text/javascript" data-idc="123abc">function hello(str){alert(str);}<\/script>');
    		});
     
    		$(window).load(function(){
    			hello("Bonjour !");
    		});
    	</script>
    </head>
    <body>
        <div id="conteneur">
     
        </div> 
    </body>  
    </html>

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

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

Discussions similaires

  1. [JpGraph] Comment puis-je cacher la valeur dans le tableau?
    Par magicwolf dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 29/12/2012, 12h14
  2. [AC-2007] Comment puis-je enregistrer des données dans listview en tableau
    Par biancaioana dans le forum VBA Access
    Réponses: 7
    Dernier message: 21/08/2012, 20h16
  3. Réponses: 7
    Dernier message: 23/09/2010, 23h53
  4. comment puis je connecté un MAC dans un LAN de PC
    Par devlopassion dans le forum Apple
    Réponses: 3
    Dernier message: 15/06/2008, 13h04
  5. Comment puis-je mettre un include dans une variable
    Par pierrot10 dans le forum Langage
    Réponses: 17
    Dernier message: 31/08/2006, 08h45

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