Geckozone -> H+ 2 minutes ^_^

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...
olab
Varan
Messages : 1254
Inscription : 30 juil. 2003, 20:20

Message 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.
olab
Varan
Messages : 1254
Inscription : 30 juil. 2003, 20:20

Message 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
Xanthor
Lézard à collerette
Messages : 280
Inscription : 29 juil. 2003, 18:36

Message 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 :D
olab
Varan
Messages : 1254
Inscription : 30 juil. 2003, 20:20

Message 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
bobo
Iguane
Messages : 764
Inscription : 18 août 2003, 11:04

Message par bobo »

olab a écrit :J'ai fait ça :

Code : Tout sélectionner

var div=document.createElement('div');
if (div) {
...
}
mais rien n'apparait dans la page
As tu inséré ton élément div quelque part dans la structure du document ?
Les standards c'est bon, mangez en !
Flore & Sébastien
Unité dans la diversité.
olab
Varan
Messages : 1254
Inscription : 30 juil. 2003, 20:20

Message 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.
Xanthor
Lézard à collerette
Messages : 280
Inscription : 29 juil. 2003, 18:36

Message 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.
Benoit
Administrateur
Messages : 4894
Inscription : 19 juil. 2003, 10:59

Message 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

Code : Tout sélectionner

<div id="geckozone_articles"></div>
J'ai bon ? :)
Xanthor
Lézard à collerette
Messages : 280
Inscription : 29 juil. 2003, 18:36

Message par Xanthor »

Exactement. ;)
olab
Varan
Messages : 1254
Inscription : 30 juil. 2003, 20:20

Message 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 ?)
Xanthor
Lézard à collerette
Messages : 280
Inscription : 29 juil. 2003, 18:36

Message 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.
olab
Varan
Messages : 1254
Inscription : 30 juil. 2003, 20:20

Message 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> ?
bobo
Iguane
Messages : 764
Inscription : 18 août 2003, 11:04

Message par bobo »

Il me semble que la balise <script> peut -être placée quasiment partout.
Les standards c'est bon, mangez en !
Flore & Sébastien
Unité dans la diversité.
Xanthor
Lézard à collerette
Messages : 280
Inscription : 29 juil. 2003, 18:36

Message 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...
jv2759
Tyrannosaurus Rex
Messages : 4161
Inscription : 12 févr. 2004, 14:29

Message 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?
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 2 invités