[JavaScript / DOM] createElement('script') ...distant ?

Didier_S
WRInaute impliqué
WRInaute impliqué
 
Messages: 567
Inscription: 24 Aoû 2004

[JavaScript / DOM] createElement('script') ...distant ?

Message le Ven Mar 09, 2007 23:42

Alors...

J'ai une fonction en JavaScript, qui est lancée lors du chargement de ma page (body onLoad), qui écrit en DOM des morceaux d'HTML aux endroits voulus.

J'aimerais que cette fonction puisse utiliser la sortie d'un autre script JS (sur lequel je n'ai pas la main, comme un tag d'affiliation) pour la placer dans un élément.

Par exemple, j'ai un div id="zoneCible" dans lequel je veux afficher le résultat du script http://example.org/js/zonecible.js .
En HTML "simple", je ferais
Code: Tout sélectionner
<div id="zoneCible"><script type="text/javascript" src="http://example.org/js/zonecible.js"></script></div>


En DOM, je me retrouve avec :
Code: Tout sélectionner
zoneCible = document.getElementById('zoneCible');
ban = document.createElement('script');
ban.type = "text/javascript";
ban.src = "http://example.org/js/zonecible.js";


Et c'est là que ca se complique. L'élement est bien créé, ses attributs ont les bonnes valeurs, bref, le tag d'origine est recréé (merci la DevToolbar de Firefox et son génial "View generated source").
Par contre, je n'arrive pas à afficher son output dans ma ZoneCible... (rappelez-vous, c'était l'idée ;))

Quelques pistes essayées, sans succès :
Code: Tout sélectionner
scrapper.innerHTML = eval(ban) => affiche [object HTMLScriptElement]
scrapper.apppendChild(ban) => page tourne en boucle


des idées ? une solution ?

Tilt
WRInaute impliqué
WRInaute impliqué
 
Messages: 858
Inscription: 26 Mar 2005

Message le Sam Mar 10, 2007 1:23

si c'était pour moi j'utiliserais une requête ajax vers un script php qui rappatrie le js distant avec curl ou file_get_contents.

comme ça j'aurais la main sur le résultat avant de le renvoyer au client.

Didier_S
WRInaute impliqué
WRInaute impliqué
 
Messages: 567
Inscription: 24 Aoû 2004

Message le Dim Mar 11, 2007 13:17

ca peut être une solution, en effet
mais je trouve un peu dommage de faire un appel serveur pour ne servir qu'un script client (évidemment, je n'ai pas "le droit" de modifier le js...)

merci quand même pour l'idée


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités