Je te remerci pour cette explication très claire :). C'est exactement ce dont j'avais besoin car tu répond même à un des besoins que je voulais gérer après, à savoir le chargement d'un squelette pour les browser n'ayant pas JS d'activé !! ![]()
Pour le loader, je me fou un peu de la façon dont ça s'affiche du moment que ça fonctionne :). Le seul critère que j'ai vis-à-vis du code, c'est qu'il soit le plus propre possible et respectueux de ce qui se fait de façon à être optimum.
Par contre j'évoquais un élément dans ma demande initiale, notament le fait que sous ie6 et 7 mes liens avec la class="load" fonctionnent sur la première page (sommaire.html dans laquelle je fais un include du squelette news.html), mais ils ne marchent pas quand j'ai remplacé news.html par article.html ou autre. En gros une fois que mon refresh de la DIV a fonctionné la première fois, ensuite ça ne fonctionne plus et spip m'envoi donc vers le squelette "BRUT" puisque pour le moment je n'ai pas d'alternative sans JS.
Je ne sais pas si je suis très clair, le résultat est visible ici : www.korx-crew.com/test/spip
Cdt
Nicolas
-----Message d'origine-----
De : spip-bounces@rezo.net [mailto:spip-bounces@rezo.net] De la part de had
Envoyé : mardi 18 décembre 2007 08:35
À : spip@rezo.net
Objet : Re: [Spip] AJAX
TESSIER Nicolas a écrit :
En revanche je n'ai pas bien compris le principe de fonctionnement de
lien et lien2. :SPS: désolé de toutes ces questions mais comme je débute j'aime bien comprendre pour pouvoir adapter :).
tout d'abord, il y a peut-être d'autre moyen de gerer ça vis à vis de spip (quid url propre ? j'ai pas testé) et j'aurai du écrire : spip.php?page=
lien=this.href.replace("spip.php?page=", "spip.php?page=ajax-");
on va dire que tu as préparer un squel test.html et un ajax-test.html.
ça permet de faire tes liens "normalement", qui amène en effet à la page test Sans javascript, c'est bien ce qui va se passer, et le lien sera bon. on charge donc le squel test.html.
Vu que JS fonctionne, on ne renvoit pas le visiteur vers la vrai page test, mais on va charger la page dans une div. on a besoin d'appeller le squel spécial ajax-test.html
on demande donc à jQuery de remplacer un bout de l'url "page=" par "page=ajax-" pour charger le bon squel. On charge donc ajax-test.html. Mais ton lien a été réécri par jQuery. Si tu recliques, le navigateur va demander page=ajax-ajax-test.html. Donc on a besoin de revenir en arrière, on demande alors à jQuery de réecrire l'url de "page=ajax-" à "page="
tout court,
pour que tu puisses recliquer dessus, sans 404.
bah, après, pour le loader, tu gères, ya plein de façon differente d'apprehender ça par expl, tu peut avoir une div avec un z-index plus bas que tralala, dans laquelle il y a un .gif web2.0 et tout et tout. Qd tu charge et décharge tralala, la div du fond apparait ... bref.
voilà
a+ had
-----Message d'origine-----
euh ...
qd je click sur a.load, charge dans le fond tralala le logo loader,
puis transforme l'url du lien en lien spécial pour ajax, charge le
lien dans la div tralala, et une fois que c'est fini, remplace le
loader par autre chose, et remet le lien dans sa version de base (pour
pouvoir recliquer dessus). voilà en gros$("a.load").click(
function() {
$(this).attr("href", function() {
$("#tralala").css("background","url(ajax-loader.gif)
no-repeat");
lien=this.href.replace("spip.php?", "spip.php?ajax-");
$(this).attr("href", plien );
$("#tralala").load(this.href, , function()
{$(this).css("background","url(blank.gif) no-repeat");});
lien2=this.href.replace("spip.php?ajax-", "spip.php?");
$(this).attr("href", lien2 );
});
return false;
});cordialement,
a+ had
_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/ irc://irc.freenode.net/spip FAQ : http://www.spip.net/fr\_article1054\.html