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 :

CreateElement('script') ça fonctionne ?


Sujet :

JavaScript

  1. #1
    Membre habitué
    Inscrit en
    Juillet 2006
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 14
    Par défaut CreateElement('script') ça fonctionne ?
    Salut à tous,

    Quelqu'un aurait il une super explication à me donner pourquoi avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <script language="javascript">
    	function render() {
    		var _el = document.createElement('script');
    			_el.setAttribute('type','text/javascript'); 
    			_el.setAttribute('src', 'http://www.dpbolvw.net/placeholder-2958801?target=_top&mouseover=N');
     
    		var _head = document.getElementsByTagName('head')[0];
    			_head.appendChild(_el); 
    	}
     
    	window.onload = render;
    </script>
    Firefox, affiche bel et bien l'image (la source est une bannière de pub) tout en attendant un je ne sais quoi, mais refuse d'utiliser la méthode qui est indiquée et pourquoi IE lui ne fait rien du tout...

    J'en perds mon latin.

    Jérôme

  2. #2
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <script language="javascript">
    	function render() {
    		var _el = document.createElement('script');
    			_el.type='text/javascript'; 
    			_el.src='http://www.dpbolvw.net/placeholder-2958801?target=_top&mouseover=N');
     
    		var _head = document.getElementsByTagName('head')[0];
    			_head.appendChild(_el); 
     
                  document.close();}
     
    	window.onload = render;
    </script>
    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 !

  3. #3
    Membre habitué
    Inscrit en
    Juillet 2006
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 14
    Par défaut
    Euhhhh ??

    Bon passer du setAttribute à l'assignation directe des properties, j'avais déjà essayé mais change rien...

    et le document.close... quel intérêt ?

    Sans parler que ça change rien ça fonctionne toujours pas.

  4. #4
    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
    le document.close c'est pour eviter que firefox attende quelquechose ...

    et eviter le setattribute c'est pour rendre le code crossbrowser
    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 !

  5. #5
    Membre habitué
    Inscrit en
    Juillet 2006
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 14
    Par défaut
    Sauf que ça fait rien... t'as déjà fait ce genre de chose ???

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 397
    Par défaut
    Citation Envoyé par llopht Voir le message
    Sauf que ça fait rien... t'as déjà fait ce genre de chose ???
    C'est pas le genre à répondre au hasard quand même, il est modérateur/rédacteur sur le forum.

    Edit : En fait ca ne me regarde pas, désolé je m'emporte parfois.

  7. #7
    Membre habitué
    Inscrit en
    Juillet 2006
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 14
    Par défaut
    "t'as déjà fait ce genre de chose ???"

    C'est dans le sens "es tu déjà arrivé à faire un createelement("script") qui fonctionne" et pas dans le sens reproche

    Jérôme

    Je suis pas du genre à agresser

  8. #8
    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
    la page html:
    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
     
    <html>
    <head>
     
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>Nouvelle page 1</title>
    <script type='text/javascript'>
    function addScript(){
    var newScript =document.createElement('script');
    newScript.type='text/javascript';
    newScript.src="DomScript.js" 
    document.getElementsByTagName('head')[0].appendChild(newScript)
    }
    </script>
    </head>
     
    <body>
    <input type='button' onclick="setTimeout(addScript,1000);this.disabled=true" value='go' />
     
    </body>
     
    </html>
    le fichier .js

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.body.onclick=function(){alert('ajouté')};
    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 !

  9. #9
    Membre habitué
    Inscrit en
    Juillet 2006
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 14
    Par défaut
    Fonctionne sur IE mais pas sur Firefox.

    Vraiment bizarre.

  10. #10
    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
    c'est le onclikc qui le gène
    mais avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.body.style.backgroundColor='red';
    dans le fichier js ça marche sur IE et FFX ...


    Pareil avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementsByTagName('input')[0].onclick=function(){alert('coucou')};
    en retirant le disabled ...

    Donc oui ça marche ...
    FFX semble réticent à attribuer un onclick sur le body avec cette syntaxe ...
    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 !

  11. #11
    Membre habitué
    Inscrit en
    Juillet 2006
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 14
    Par défaut
    Ok mais regarde :

    Mon fichier HTML
    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
     
    <script language="javascript">
    	function render() {
    		var _el = document.createElement('script');
    			_el.type 	= 'text/javascript'; 
    			_el.onload 	= onLoad;
    			_el.src  	= 'monfichier.js' + noCache();
     
    		var _head = document.getElementsByTagName('head')[0];
    			_head.appendChild(_el); 
    	}
     
    	function noCache() {
    		return '?nc=' + new Date().getTime();
    	}	
     
    	function onLoad() {
    		document.close();
    	}
     
    	window.onload = render;
    </script>
    Mon fichier JS (monfichier.js)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    function test() {
    	alert('ok');
    }
     
    document.write("<img src='http://www.yceml.net/0754/10450674-7.jpg' width='728' height='90' onclick='test()' />");
    Sur IE. Rien ne s'affiche.
    Sur firefox, la bannière s'affiche mais la fonction "test" est indéfinie...
    impossible de l'afficher non plus via firebug.

    J'ai mis un onload pour mette le document.close qui en effet corriger le problème d'attente sous firefox.

    Par contre autre problème malgré la fonction noCache, je suis obligé de systématiquement change de page (j'ai l'impression que firefox est bloqué).

    Ton avis ?

  12. #12
    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
    déja appeler une fonction onLoad ..; très maladroit

    essaye myOnLoad() ...

    et puis document.write à tendance à effacer le contenu de la page ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.createElement('img') ...
    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 !

  13. #13
    Membre habitué
    Inscrit en
    Juillet 2006
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 14
    Par défaut
    bah... onload onLoad javascript est sensible à la casse... je vois pas trop ou est le problème...

    J'utilise document.write car le contenu est dynamique. Je peux avoir n'importe quoi en retour...

    As tu une idée de ce qui peux bloquer ?

  14. #14
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par llopht Voir le message
    bah... onload onLoad javascript est sensible à la casse... je vois pas trop ou est le problème...
    Pas là, non, St.Thomas

    A+

  15. #15
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    tu as essayé d'affecter le script à un autre conteneur (un div en haut de page?);
    j'avoue que ça m'a tjrs paru plus simple;


    sinon, ton script a l'air logique, même si je ne comprends pas trop cette construction d'un script src au chargement...

  16. #16
    Membre habitué
    Inscrit en
    Juillet 2006
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 14
    Par défaut
    Nan ça change rien. C'est pour charger du contenu JS en évitant les problèmes de Cross Domain (dynamic script tag) tu n'as qu'un petit beaucoup du code... Comme ça, ça n'a pas beaucoup d'intérêt toujours est il que ça passe pas

    Tien idem, si on fait un simple createElement("div") et qu'on y mets un javascript "<script langu... function test() { alert..." si on essaye d'appeller test ça passe pas. Problème que je n'arrive pas à contourner même avec un setTimeout...

  17. #17
    Membre habitué
    Inscrit en
    Juillet 2006
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 14
    Par défaut
    document.close() sous IE m'efface carrément le contenu dans un IFrame... sais tu pourquoi SpaceFrog ?

  18. #18
    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
    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 !

  19. #19
    Membre habitué
    Inscrit en
    Juillet 2006
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 14
    Par défaut
    donc pas d'idée ???

  20. #20
    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
    ben déjà il faudrait que tu nous remontre ton code ...
    et ce serait bien la première fois que document.close() agisse de la sorte ...
    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 !

Discussions similaires

  1. [Configuration] script qui fonctionne en mode console et non a partir d'un browser
    Par nannous dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 06/12/2006, 11h50
  2. Mon script ne fonctionne tjrs pas !!
    Par adlich dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 29/04/2006, 00h43
  3. Partie d'un script ne fonctionne pas en cgi
    Par shgamer dans le forum Web
    Réponses: 1
    Dernier message: 08/02/2006, 01h34
  4. Script ne fonctionne pas sous IE
    Par Stessy dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 29/09/2005, 13h44
  5. createElement('script')
    Par CR_Gio dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 17/09/2005, 19h49

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