Forums d'assistance et de discussion sur les logiciels produits par Mozilla ou créés à partir des technologies Mozilla. Ce site ne dépend pas de la fondation Mozilla et est maintenu par un collectif de bénévoles.
Toutes remarques, tout intérêt, toutes choses à dire ou à demander à propos de Geckozone... Vous voulez participer à ce projet ? C'est par là qu'ça se passe...
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.
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 :
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);
}
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.
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
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 ?)
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.
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> ?
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 :
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 :
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?