OVH Cloud OVH Cloud

Problème avec onload

17 réponses
Avatar
Christophe, www.elitemediacompany.com
Salut,

Je cherche à faire un truc que je ne parviens pas à réaliser.
Je souhaite qu'un script qui vient d'une url externe soit executé uniquement
si la page HTML est d'abord entièrement chargée, je passe donc par un onload
pour écrire le script avec write. Voici donc ce que j'ai et qui ne
fonctionner comme je voudrais puisque le script ne semble pas se charger
après et seulement après que la page soit chargée totalement :

Dans le HEAD :

function load_articles(col, rows)
{
window.document.write('<scr'+'ipt type="text/javascript"
src="http://urldusiteexterne.com/affiliates/remote_data.asp?lang=fr&amp;affid=19899&amp;col='+col+'&amp;row='+rows+'&amp;catid=&amp;cur=CHF&amp;shop=1&amp;tmp=1&amp;style=rnd"
charset="iso-8859-15"></scr'+'ipt>');
}

Dans la page :

<script type="text/javascript">
<!--
window.document.onload = load_articles(1, 2);
//-->
</script>

Pour encore plus d'explications, si je souhaite faire comme ca c'est que
parfois le site externe est lent voir ingoingable et cela me ralenti trop le
chargement de la page HTML. Je souhaite donc une méthode "non obstrusive" au
site principal qui lui est plus important.

Des idées ou solutions à mon problème ?

Christophe

7 réponses

1 2
Avatar
ASM
Dernière soluce : l'iframe
(y envoyer au onload le fichier contenant le bazar ?)


J'suis en XHTML 1.0 Strict, passera jamais :-(


alors un object ?
et même créé après-coup.

Voir compatibilités pour IE ?


function siteDistant() {
var cible = document.getElementById('scriptexterne');
var o = document.createElement('object');
o.data="scriptexterne.html"
o.type="text/html"
o.width="300"
o.height="200"
var a = 'alt: <a href='+
'"http://urldusiteexterne.com/affiliates/remote_data.asp?'+
'lang=fr&amp;affid899&amp;col='+col+
'&amp;row='+rows+
'&amp;catid=&amp;cur=CHF&amp;shop=1&amp;tmp=1&amp;style=rnd">'+
'script externe</a>';
cible.appendChild(o);
}
onload = siteDistant;

et réaliser la page : scriptexterne.html

--
Stephane Moriaux et son (moins) vieux Mac déjà dépassé


Avatar
ASM

Tiens je viens de voir que ce site d'affiliation proposait les données
sous forme de RSS ou XML.

Ca serait surement une piste à exploiter, mais pourquoi m'a tu précisé
avant que XMLHttpRequest était interdit depuis un site distant ? Ca
n'est pas la une des forces des technologies Ajax de pouvoir faire ce
genre de truc ? Genre d'aller chercher les infos RSS sur le site distant
puis de les parser avec PHP ?



RSS : je n'y connais rien.

XMLHttpResquest : je suis très certain que ce n'est pas "cross-domain"
(d'ailleurs ... ça risque d'être pareil avec balise object ! :-( )

Ajax complète le XHR par du code coté serveur (comme php par exemple)
qui, lui est libéré du non-cross-domain.
Donc, oui pourquoi pas XMLHttpResquester un fichier php qui include le
bazar, cette fois en XML au lieu d'un JS à la noix de document.write().

Fil RSS :
http://www.benoitpiette.com/labo/tutoriel-ajax.html
Ajax :
http://developer.mozilla.org/fr/docs/AJAX

--
Stephane Moriaux et son (moins) vieux Mac déjà dépassé

Avatar
Christophe, www.elitemediacompany.com
Fil RSS :
http://www.benoitpiette.com/labo/tutoriel-ajax.html


Arghhh, je sais pas ou tu l'as trouvé celui-ci mais c'est exactement ce
qu'il me fallait et ca fait 2 heures que je Googlize pour rien trouver de
concret.

Merci de ton soutient, je te tiens au courant du résultat de mes experiences
avec Ajax (la première fois pour moi, donc je sens que je n'ai pas fini de
poser des questions...)

Christophe

Avatar
Christophe, www.elitemediacompany.com
alors un object ?
et même créé après-coup.

Voir compatibilités pour IE ?


Ta solution dans ton post précédant avec le tutorial pour parser du RSS avec
Ajax fonctionne à merveille. Je ne vais donc pas me casser plus la tête.

Je te remercie sincèrement car tu m'as évité de douloureuses remarques qui
m'auraient été faites par le client ;-)

Christophe

Avatar
unbewusst.sein
ASM wrote:

XMLHttpResquest : je suis très certain que ce n'est pas "cross-domain"


On peut très bien faire du XHR XDomain mais à deux conditions :
- utiliser un serveur de proxy (marche qq soit le nav) ;
- spécifiquement avec Opera cf. l'exemple donné sur le forum :

<http://my.opera.com/community/forums/topic.dml?id5224>
sujet du fil : "Cross-domain XMLHttpRequest".
--
Artaban de Médée

Avatar
ASM

On peut très bien faire du XHR XDomain mais à deux conditions :
- utiliser un serveur de proxy (marche qq soit le nav) ;
- spécifiquement avec Opera cf. l'exemple donné sur le forum :

<http://my.opera.com/community/forums/topic.dml?id5224>
sujet du fil : "Cross-domain XMLHttpRequest".


C'est quoi çà : 'userscript folder' et ça : 'user js file' ?

Si ce sont des fichiers propres à Opera (ou autre(s) brouteur(s)) à
avoir sur son DD, ce n'est pas exploitable pour un fichier web "normal".

--
Stephane Moriaux et son (moins) vieux Mac déjà dépassé

Avatar
unbewusst.sein
ASM wrote:

C'est quoi çà : 'userscript folder' et ça : 'user js file' ?

Si ce sont des fichiers propres à Opera (ou autre(s) brouteur(s)) à
avoir sur son DD, ce n'est pas exploitable pour un fichier web "normal".


ben non, c'est spécifique à opera, userJS est un folder qu'il faut créer
qqpart et l'indiquer à Opera comme extension.

amha c'est cette technique qui doit être utilisée dans les widgets
"cross-domain" (?)

je n'ai pas essayé le X-domain par proxy.
--
Artaban de Médée

1 2