11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Je suis en train de coder un thème Wordpress entièrement en ajax (afin de tester le référencement ajax). J'avais dejà fait un thème CMS made simple qui marchait parfaitement, mais Wordpress me pose un problème assez spécial que j'ai du mal à résoudre...

Lorsque j'utilise ce code pour faire mon appel ajax, aucun soucis :
var link = 'http://nomdedomaine.fr/page_a_charger';
$('#contenu').load(link + ' #contenu');


Par contre avec celui-ci, je n'arrive a sélectionner (avec "find") seulement les éléments générés dans la boucle Wordpress ..?!?
var link = 'http://nomdedomaine.fr/page_a_charger';
$.ajax({
  url: link,
  processData: false,
  success: function(data){
    var truc = $(data).find('#contenu');
    $('#contenu').append(truc);
  }
});


Et pourtant lorsque je log dans ma console les données renvoyés par "data", j'ai bien le contenu entier de ma page. Smiley confus

Pour ce thème, j'ai vraiment besoin d'appeler en ajax la page entière, et donc je ne peux pas vraiment utiliser la page "wp_ajax" de Wordpress, qui sert notamment pour la réalisation de plugins...

Quelqu'un aurait-il une piste pour m'aider ?
Merci !

ps : le site qui me pose problème : http://ajax.wuiwui.net
le site sous CMSms qui marche parfaitement, avec le même système :http://denis.wuiwui.net
Là ça fonctionne mais seulement grâce à la fonction load. L’inconvénient est qu'avec cette méthode je ne peux pas faire, correctement, d'animation au chargement. Et puis surtout, je souhaite intégrer plusieurs parties de la page appelé, à différents endroits...

Je remet le code qui ne marche pas, sur mon site de démo, pour ceux qui veulent voir le bug. Smiley murf
jb_gfx a écrit :
Ça à l'air de bien fonctionner pourtant (sur ton site démo).


J'oubliais de dire : pour voir ce qui se passe, il faut voir dans le console firebug... aucun élément trouvé. Et si je change "#contenu" par "article" (par exemple), ça marche... Smiley ohwell
Problème résolu !! Smiley lol

En fait il venait de jQuery.

Le code...
$('<div><div id="aaa">blah</div></div>').find('#aaa').html();

...fonctionne parfaitement mais...
mais pas
$('<div id="aaa">blah</div>').find('#aaa').html();

...ne marche pas. En fait, jQuery n'arrive pas à trouver un élément qu'on lui met sous les yeux. j'ai donc rajouté une div global à ma page et ça marche ! Smiley biggol
Je suis en train de faire la même chose mais je veux uniquement charger une partie de la page.

Exactement, je souhaite charger un sous-template wordpress qui correspond uniquement à la boucle, sans recharger le header etc... .le but étant de charger plus vite et plus léger.

Je n'arrive pas a appeler uniquement cette partie, en utilisant le fameux sous-template?

Existe-t-il une technique ?

merci
J'ai résolu mon soucis, il faut utiliser l'action template_redirect.

Je confirme pour le double div dans pour trouver le noeud avec l'id voulu. Bizarre.