Page 3 sur 4
Publié : 06 juil. 2004, 15:46
par olab
Ah oui, par le dom quoi. j'y avais pas pensé, j'avoue que j'ai récupéré ce que faisait spip, et basta

Merci pour ta contrib, je vais mettre ça en place.
Publié : 07 juil. 2004, 00:11
par olab
Ben ça marche pas ton JS :-/
Par contre, j'ai mis en place les flux avec articles & actus, va voir dans /syndication/
O
Publié : 07 juil. 2004, 14:08
par Xanthor
olab a écrit :Ben ça marche pas ton JS :-/
Quelle est l'erreur ?
T'as bien un élément appelé
geckozone_articles dans ta page de test ?
Par contre, j'ai mis en place les flux avec articles & actus, va voir dans /syndication/
Merci beaucoup

Publié : 07 juil. 2004, 16:26
par olab
En fait j'ai replacé ton getElementById("geckozone_articles") par un createElement("div"), vu que sur le site du gars qui veut syndiquer, je chercher à créer le div, il est pas censé avoir déjà ce div. Tu vois où je veux en venir ?
J'ai fait ça :
Code : Tout sélectionner
var div=document.createElement('div');
if (div) {
var dl=document.createElement('dl');
var dt=document.createElement('dt');
var a=document.createElement('a');
a.setAttribute('href','http://www.geckozone.org/');
a.setAttribute('hreflang','fr');
a.appendChild(document.createTextNode('Geckozone'));
dt.appendChild(a);
dl.appendChild(dt);
alert(a);
var dd1=document.createElement('dd');
var a1=document.createElement('a');
a1.appendChild(document.createTextNode('Installer RSS Reader Panel FR'));
a1.setAttribute('href','http://www.geckozone.org/articles/31');
a1.setAttribute('hreflang','fr');
dd1.appendChild(a1);
dl.appendChild(dd1);
div.appendChild(dl);
}
mais rien n'apparait dans la page
Publié : 07 juil. 2004, 16:37
par bobo
olab a écrit :J'ai fait ça :
mais rien n'apparait dans la page
As tu inséré ton élément div quelque part dans la structure du document ?
Publié : 07 juil. 2004, 16:43
par olab
oups, maintenant que tu le dis, ya pas de appendChild pour le div...
Le hic, c'est que comment faire en sorte qu'il soit ajouté à l'endroit où on appelle le script ? vu que c'et là que le webmestre veut l'insérer.
Publié : 07 juil. 2004, 17:01
par Xanthor
C'est pour ça qu'il ne sert à rien de créer le div.
Le gars qui veut syndiquer a prévu quelque part dans la page ce div.
Publié : 07 juil. 2004, 17:49
par Benoit
Donc en résumé, l'auteur de la page a deux choses à mettre :
- dans son "head", l'appel du script
- dans sa page à l'endroit où il veut que ça apparaisse, juste
J'ai bon ?

Publié : 07 juil. 2004, 18:16
par Xanthor
Exactement.

Publié : 07 juil. 2004, 19:03
par olab
Ok, c'est bien ce que j'avais fini par comprendre, mais avoue que c'est quand même moins pratique que le document.write pourri...
Et le script, c'est juste après le <div></div> qu'il faut l'insérer, ou bien vraiment dans le head ? (sinon on risque d'avoir un pb si le div est pas encore chargé non ?)
Publié : 08 juil. 2004, 13:07
par Xanthor
olab a écrit :Ok, c'est bien ce que j'avais fini par comprendre, mais avoue que c'est quand même moins pratique que le document.write pourri...
C'est pas que c'est moins pratique, c'est que c'est la seule solution qui fonctionne (j'ai bien dit
"qui fonctionne", pas
"qui est valide")
Et le script, c'est juste après le <div></div> qu'il faut l'insérer, ou bien vraiment dans le head ? (sinon on risque d'avoir un pb si le div est pas encore chargé non ?)
Il faut que le script apparaisse avant le div. C'est pourquoi le mettre dans le head est la meilleur solution.
Publié : 09 juil. 2004, 11:51
par olab
Désolé mais si je mets le <script></script> dans le head, et le <div></div> dans le corps du document, ça fonctionne pas, le script est sans doute exécuté avant que le div ne soit chargé.
Par contre si je fais <div><script></script></div>, ça marche niquel, mais est-ce valide ? A-t-on le droit d'enchasser un <script> dans un <div> ?
Publié : 09 juil. 2004, 13:31
par bobo
Il me semble que la balise <script> peut -être placée quasiment partout.
Publié : 09 juil. 2004, 13:50
par Xanthor
olab a écrit :Désolé mais si je mets le <script></script> dans le head, et le <div></div> dans le corps du document, ça fonctionne pas, le script est sans doute exécuté avant que le div ne soit chargé.
Arf oui pardon, j'etais vraiment mal reveillé.
Il faut effectivement que le script soit
après le div. Si on veut pouvoir le mettre avant, il faut l'executer avec l'événement
onload...
Pour un navigateur moderne ça donne :
Code : Tout sélectionner
function syndic()
{
// le code donné plus haut
}
document.getElementsByTagName('body')[0].addEventListener('load',syndic,false);
Mais pour IE je ne sais pas...
Publié : 09 juil. 2004, 13:57
par jv2759
Xanthor a écrit :olab a écrit :Désolé mais si je mets le <script></script> dans le head, et le <div></div> dans le corps du document, ça fonctionne pas, le script est sans doute exécuté avant que le div ne soit chargé.
Arf oui pardon, j'etais vraiment mal reveillé.
Il faut effectivement que le script soit
après le div. Si on veut pouvoir le mettre avant, il faut l'executer avec l'événement
onload...
Pour un navigateur moderne ça donne :
Code : Tout sélectionner
function syndic()
{
// le code donné plus haut
}
document.getElementsByTagName('body')[0].addEventListener('load',syndic,false);
Mais pour IE je ne sais pas...
pour ie tout simplement :
<body onload="syndic"> à une erreure de sintaxe pret.
Par contre je me pause cette question, on ne peux pas le mettre directement dans le body plutot que faire un addevent? Car cela me parer un peux lourd non?