5568 sujets
Sémantique web et HTML
Salut,
Je comprends pas trop ta question, car si tu utilise une iframe, cela veut dire que celle ci est incluse dans le body d'une page comportant un doctype, un <head> avec ses balises meta, donc la "page" incluse ne doit être qu'une page de contenu sans structure de code, en l'occurence celui que tu souhaite voir s'afficher dans l'iframe, sinon la page risquera d'être invalide et de poser des problèmes d'interprétation aux navigateurs.
Je comprends pas trop ta question, car si tu utilise une iframe, cela veut dire que celle ci est incluse dans le body d'une page comportant un doctype, un <head> avec ses balises meta, donc la "page" incluse ne doit être qu'une page de contenu sans structure de code, en l'occurence celui que tu souhaite voir s'afficher dans l'iframe, sinon la page risquera d'être invalide et de poser des problèmes d'interprétation aux navigateurs.
ok, alors peut-etre que l'iframe n'est pas une bonne solution.
Ce que j'aimerai réaliser, c'est d'importer juste une partie d'une autre page html (le contenu d'un div en particulier) dans une autre page.
J'ai cherché partout, mais pour l'instant sans succès.. j'ai vu à certains endroits qu'on parlait de javascript (fonction "innerHTML"?), peut-etre que ca serait une solution, mais j'ai pas bien compris comment l'appliquer...
Ce que j'aimerai réaliser, c'est d'importer juste une partie d'une autre page html (le contenu d'un div en particulier) dans une autre page.
J'ai cherché partout, mais pour l'instant sans succès.. j'ai vu à certains endroits qu'on parlait de javascript (fonction "innerHTML"?), peut-etre que ca serait une solution, mais j'ai pas bien compris comment l'appliquer...
marinabru a écrit :
j'ai vu à certains endroits qu'on parlait de javascript
En jQuery, la métode load() permet de charger un fragment d'une page :
$('#result').load('ajax/test.html #container');
http://api.jquery.com/load/
J'ai testé la methode avec jQuery, et ca a marché tip-top, par contre ca a chaque fois prend environ 1 seconde pour importer le contenu, c'est normal?
Par contre Florent, tu parles de fonctions PHP, j'ai déjà loadé des pages entieres avec la fonction include(), mais est-ce que c'est possible de loader seulement le contenu d'un div (de le cibler d'un quelconque manière) avec cette fonction?
Merci pour les infos!
Par contre Florent, tu parles de fonctions PHP, j'ai déjà loadé des pages entieres avec la fonction include(), mais est-ce que c'est possible de loader seulement le contenu d'un div (de le cibler d'un quelconque manière) avec cette fonction?
Merci pour les infos!
Pour le délai d'une seconde, oui, c'est normal.
Tu effectues une requête «Ajax». C'est à dire qu'à l'aide de JavaScript tu demande au navigateur de faire une requête HTTP (comme quand tu charges n'importe quelle page ou fichier sur un serveur web). Faire la requête est quasi-instantanné, mais la requête doit arriver au serveur (latence réseau...), le serveur doit traiter la requête (en général c'est rapide), puis la réponse du serveur doit t'arriver (latence réseau encore...), puis ton code JavaScript doit analyser le contenu reçu et l'utiliser. Tout ça prend du temps mais c'est surtout la latence réseau qui est sensible, le reste étant souvent négligeable.
Bah tu charges ce que tu veux.
Je t'invite à lire:
- Inclure un fichier dans un autre grâce à PHP
- Le point sur la fonction PHP include
Je te conseille de plutôt utiliser une solution côté serveur (PHP avec fonction include() par exemple) qu'une solution côté navigateur (requête Ajax avec jQuery par exemple). Si ta navigation repose sur JavaScript:
- elle ne sera pas parcourue par les robots d'indexation des moteurs de recherche;
- elle ne sera pas utilisable par les utilisateurs qui, pour une raison ou une autre, n'ont pas JavaScript.
Modifié par Florent V. (12 Nov 2010 - 15:30)
Tu effectues une requête «Ajax». C'est à dire qu'à l'aide de JavaScript tu demande au navigateur de faire une requête HTTP (comme quand tu charges n'importe quelle page ou fichier sur un serveur web). Faire la requête est quasi-instantanné, mais la requête doit arriver au serveur (latence réseau...), le serveur doit traiter la requête (en général c'est rapide), puis la réponse du serveur doit t'arriver (latence réseau encore...), puis ton code JavaScript doit analyser le contenu reçu et l'utiliser. Tout ça prend du temps mais c'est surtout la latence réseau qui est sensible, le reste étant souvent négligeable.
marinabru a écrit :
mais est-ce que c'est possible de loader seulement le contenu d'un div (de le cibler d'un quelconque manière) avec cette fonction?
Bah tu charges ce que tu veux.
Je t'invite à lire:
- Inclure un fichier dans un autre grâce à PHP
- Le point sur la fonction PHP include
Je te conseille de plutôt utiliser une solution côté serveur (PHP avec fonction include() par exemple) qu'une solution côté navigateur (requête Ajax avec jQuery par exemple). Si ta navigation repose sur JavaScript:
- elle ne sera pas parcourue par les robots d'indexation des moteurs de recherche;
- elle ne sera pas utilisable par les utilisateurs qui, pour une raison ou une autre, n'ont pas JavaScript.
Modifié par Florent V. (12 Nov 2010 - 15:30)