11548 sujets

JavaScript, DOM et API Web HTML5

Salut

Dans un site, je charge le contenu d'un DIV via Request.HTML.
Ce contenu contient des vignettes d'images et j'aimerais utiliser MultiBox pour les afficher en grand quand on clique dessus.
Lorsque j'ai des images des l'ouverture de mes pages, tout va bien.
Par contre, les images chargés via Request.HTML, ne sont pas reconnus par MultiBox
(alors que l'initialisation de Multibox est faite dans le fichier appelé par Request.HTML)
Bon, j'ai essayé plusieurs trucs, mais rien ne marche si mes images ne sont pas présentes à l'ouverture de la page.

Est ce que vous auriez une piste ?

Merci

Marco
Bonsoir,

Juste comme ça, t'es sûr que l'initialisation de Multibox c'est bien faite après Request.HTML ?
Il faut savoir qu'après avoir attaché des fonctions à un nœud et qu'un nouveau nœud sur laquelle ces fonctions devrait être attaché est créé, aucunes fonctions ne lui sera attaché. En gros si tu initialises Multibox et que les images sont ajouté après, il ne se passera rien...
Dans jquery il existe une méthode live qui permet de régler ce problème, je ne croit pas qu'elle existe dans Mootools.
Une solution serait d'à chaque fois attaché MultiBox aux nouvelles images après les avoir insérer. Au passage supprimé l'attachement au images précédente. J'ai jamais testé mais si les nœuds n'existe plus, les fonctions attaché reste... je croit '^^.
Merci pour ta réponse.

Pour répondre à ta question:
- Ma page principal contient de liens et un <DIV> vide.
- En cliquant sur un lien, j'appelle un script PHP via Request.HTML
- Une fois le Request fini, je remplace le <DIV> vide par le résultat du Request.

Dans le script PHP, j'ajoute des images et du Javascript/Mootools pour intialiser Multibox.
Je ne fais rien de plus que si ma page était chargé normalement.
Je pense que ca vient de la..il faut forcer quelque chose, mais je vois pas quoi.
Normalement, j'initialise Multibox dans DomReady, la j'ai fais pareil, puis en dehors du DomReady (dans le flux normal)..ca ne change rien.
Pour info, je ne redéclare pas les bibliothèques mootools, etc.. dans le script PHP..je me dis qu'il devait utiliser ceux de la page qui les contient et qui sont déjà chargés.

Vous pouvez aller voir ce que ca donne actuellement sur www.relance.pf/maquette2/
Vous allez dans le menu noir en haut, choisissez "Chantiers" puis "Batiment".
Une page apparait avec une liste d'éléments, cliquez sur le premier (aaa).
C'est une version de travail...les données sont complétement bidon.

Merci pour ton aide

Marco
Je viens de m'apercevoir d'un autre problème qui est peut être lié...

Si vous aller voir la page que j'indique dans le message précédent, vous constaterez que les accents sont mal traités.
J'ai fais un essai, en chargeant du contenu dans mon DIV des l'ouverture de ma page..les accents sont bien gérés.
J'ai ajouté
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" />
dans mon script PHP appelé par Request, ca ne change rien..

Je vais creuser ce point la...mais c'est bizarre..je pensais qu'il prendrait les caractèristiques de la page.
Il y a sans doute un truc a préciser à Mootools ou Javascript..

La aussi, si vous avez des pistes..

Merci

Marco
Salut,

Désolé, dans le speed et sans avoir trouvé de solutions...j'ai abandonné l'idée du Request.
J'en suis revenu au rechargement de la page dans sa totalité...
et j'ai oublié de vous prévenir (je traine ce bleme depuis un moment et le client pousse derriere).

Dommage que ca n'est pas fonctionné...Ca limite les possibilités...je suis sur qu'il y a un truc...mais pas trouvé sur le net..

Je laisse le fil ouvert...on sait jamais..

encore merci pour l'intéret et l'aide que tu m'as apporté.

Marco
Salut à tous,

Bon moi je crois que j'ai le même problème que pifoux, ça fait déjà pas mal de temps que je cherche. Les images ne s'affichent pas moi non plus lorsque je fais un request.html avec mootools, en adoptant le résultat de la requête dans l'évènement onSuccess.

J'ai trouvé une solution qui marche avec firefox, tu mets &nbsp; après ton code php, et moi en tout cas ça marche, l'affichage est correct. Mais que sous firefox ! et encore il me sort une erreur mais affiche correctement. Chrome ou Safari eux affiche une grosse erreur "&nbsp; entité non définie" un truc comme ça, et du coup n'affiche rien du tout, c'est un peu embêtant...
En fait si je mets pas &nbsp;, le problème est que même les css ne sont pas prises en compte, ni la structure, ni rien : les images ne s'affichent pas, les div sont en ligne avec des span et d'autres div, il n'y a que le texte pur qui s'affiche.

Mes précisions sont un peu en vrac, et je ne sais pas si ça va aider quelqu'un, mais si quelqu'un a une solution qui marche je suis preneur !

Merci bonne nuit
Salut

Pas sur que ca soit le meme problème que moi...
Pour toi, ca semble être le request qui pose problème...pour moi c'était l'appel à la fonction multibox dans un contenu chargé par request.

Chez moi, le request fonctionnait très bien..c'était ensuite un problème d'initialisation de Multibox...Que je n'ai pas résolu...j'ai fini par recharger totalement ma page, plutot qu'une portion avec request.

Envoi ton code, si tu veux un coup de main...ton explication n'est pas très clair pour moi

Marco
Bonjour,

Je passais par là est j'ai vu qu'un fils été encore ouvert sur les problème request de mootools.
Il faut relancer les functions dans le onSuccess de Request
ex.

req = new Request.HTML({
                    url:url_page,
                    onSuccess: funtion(html){
                    // relancer les functions du dom ready
                    reloadfunction()
                   }
});


Si ça peux aider