OVH Cloud OVH Cloud

inclure le contenu d'un fichier html dans un autre par javascript

13 réponses
Avatar
andre moreau
Bonjour....

Ma question est peut-être triviale ou simplement la fonction n'existe pas ?

J'aimerais à la façon d'un document.write inclure, non du texte entre deux "
ou le contenu d'une variable mais l'entiereté d'un fichier html annexe... ce
qui me permettrait de composer une nouvelle page html en chargeant le début
de la page d'un fichier 'top.html', le contenu variable 'middle1.html' et
enfin la fin 'end.html'

Une commande javascript permet-elle celà ?

Merci

10 réponses

1 2
Avatar
O.L.
andre moreau a couché sur son écran :
Bonjour....

Ma question est peut-être triviale ou simplement la fonction n'existe pas ?

J'aimerais à la façon d'un document.write inclure, non du texte entre deux "
ou le contenu d'une variable mais l'entiereté d'un fichier html annexe... ce
qui me permettrait de composer une nouvelle page html en chargeant le début
de la page d'un fichier 'top.html', le contenu variable 'middle1.html' et
enfin la fin 'end.html'

Une commande javascript permet-elle celà ?

Merci


Tu peux faire ça avec Ajax (XMLHTTPRequest), en allant chercher ta page
HTML du milieu.
J'ai pas d'exemple à te donner à chaud, mais une recherche sur Google
devrait déjà débroussailler le chemin ...

Bonne chance :)

--
Olivier Ligny
Créateur web free-lance / www.cyber-tamtam.net

Avatar
andre moreau
Merci pour cette première réponse,

Je souhaitais justement faire celà mais intégralement en javascript sans
appel à quoi que ce soit d'autre... de plus si ça fonctionne dans IE et
Firefox, je suis obligé d'être certain que ça fonctionne aussi sous Safari
et dans les browser de Linux !

La façon de résoudre le problème actuellement était de concaténer des
fichiers html en un seul pas un simple batch, mais si ça pouvait se faire
tout seul en incluant une commande correcte dans un fichier html, ce serait
mieux. J'avais bien essayé avec des frames et des iframes mais l'instabilité
de résultats suivant les browsers m'avait déçu.

"O.L." a écrit dans le message de news:

andre moreau a couché sur son écran :
Bonjour....

Ma question est peut-être triviale ou simplement la fonction n'existe pas
?

J'aimerais à la façon d'un document.write inclure, non du texte entre
deux " ou le contenu d'une variable mais l'entiereté d'un fichier html
annexe... ce qui me permettrait de composer une nouvelle page html en
chargeant le début de la page d'un fichier 'top.html', le contenu
variable 'middle1.html' et enfin la fin 'end.html'

Une commande javascript permet-elle celà ?

Merci


Tu peux faire ça avec Ajax (XMLHTTPRequest), en allant chercher ta page
HTML du milieu.
J'ai pas d'exemple à te donner à chaud, mais une recherche sur Google
devrait déjà débroussailler le chemin ...

Bonne chance :)

--
Olivier Ligny
Créateur web free-lance / www.cyber-tamtam.net





Avatar
Olivier Miakinen

Je souhaitais justement faire celà mais intégralement en javascript sans
appel à quoi que ce soit d'autre...


D'une certaine façon, AJAX et XMLHttpRequest, ce n'est que du javascript
et rien d'autre. Inversement, si tu considères que ce n'est pas du
javascript pur, alors document.write ne l'est pas non plus, de même que
toute manipulation du DOM.

En outre, si tu veux t'interdire de faire plusieurs requêtes HTTP pour
obtenir la totalité de ta page (ce qui au passage me semble une bonne
idée question performances), alors ladite page doit contenir tout ce
qu'il faut au départ. Dans ce cas, autant mettre le tout dans l'ordre
dès le départ, sans JavaScript, mais avec SSI ou PHP par exemple.

de plus si ça fonctionne dans IE et Firefox, je suis obligé d'être
certain que ça fonctionne aussi sous Safari et dans les browser de
Linux !


On peut comprendre ta phrase de deux façons opposées.

1) Voir que cela fonctionne dans IE et FireFox t'oblige à considérer
comme certain que cela fonctionnera aussi dans Safari et tous les
navigateurs de Linux. (C'est faux.)

2) Même si cela fonctionne dans IE et FireFox, tu es par ailleurs obligé
de t'assurer que cela fonctionne dans les autres navigateurs cités.
(Personne d'autre que toi ne peut savoir si c'est vrai ou pas.)

La façon de résoudre le problème actuellement était de concaténer des
fichiers html en un seul pas un simple batch, mais si ça pouvait se faire
tout seul en incluant une commande correcte dans un fichier html, ce serait
mieux.


La seule solution fiable est côté serveur (Server Side Include, PHP,
Perl, CGI en C, etc.)

J'avais bien essayé avec des frames et des iframes mais l'instabilité
de résultats suivant les browsers m'avait déçu.


Et donc la seule solution fiable est côté serveur.

"O.L." a écrit dans le message de news:

[ citation intégrale, signature comprise ]



Merci de lire http://www.faqs.org/faqs/fr/usenet/repondre-sur-usenet/


Avatar
ASM
J'aimerais à la façon d'un document.write inclure, non du texte entre deux "
ou le contenu d'une variable mais l'entiereté d'un fichier html annexe... ce
qui me permettrait de composer une nouvelle page html en chargeant le début
de la page d'un fichier 'top.html', le contenu variable 'middle1.html' et
enfin la fin 'end.html'

Une commande javascript permet-elle celà ?


Donc tu veux simplement une page type + inclusion du contenu

le contenu ayant un top, un middel, un end.
top, middele et end variables

et faire ça côté : client en clicotant les 3 choix ?

Comme OL l'a dit : XHTMLRequest est ton ami en JavaScript

Exemple simpliste (agrémenté de ssi pour le cas sans JS)
http://stephane.moriaux.perso.orange.fr/truc/HttpRequest/v_1/
Essayer avec et sans JS activé pour voir la différence
Qques pistes :
http://stephane.moriaux.perso.orange.fr/truc/HttpRequest/index.shtml?liens
sinon ... Google -> XHTMLRequest

De préférence : ne pas faire inclure des pages html complètes
- à cause du head du html
- risquent d'apporter leurs css contradictoires
- pareil pour le JS

NOTA :
===== ça ne fonctionne pas pour intégrer les fichiers venant d'un autre domaine
Interdit de chez interdit.

--
Stephane Moriaux et son [moins] vieux Mac

Avatar
andre moreau
Merci pour la réponse si complète... je m'en vais étudier celà en
profondeur.

Quant à l'interprétation de la compatibilité, c'est bien sous Linux, Mac et
Pc que je dois la garantir, en évitant toutefois les solutions obsolètes.

Un petit (java)script, appelé dans le header m'avait permis d'alléger
l'ensemble d'un site, les menus déroulants qu'il autorisait étaient commun à
l'ensemble de pages. Mais je suis aussi resté un indécrotable partisan des
tableaux laissant au CSS la seule gestion des 'styles de paragraphes'.
Ancienne habitude d'une carrière passant du papier à la PAO et puis au Web.
Graphiste est mon métier de base et comme eux, j'apprécie ce qui reste en
place et ne fait pas faux bonod... affichant une sainte horreur aux
scrollbars. Toutefois je constate que pas mal de code reste commun à
beaucoup de mes pages et "bis repetita non placent" préférerait éviter les
doublons, redondances et autres bégayements. La solutions de concaténer le
contenu du header, les définitions de tableaux puis le contenu variable par
page me semblait élégant mais comme je n'ai pas la main mise quand au choix
de l'hébergement, je ne peux dépendre de Asp ou Php pour la solution. Donc
je recherchais un moyen interne au Html, multi-serveur quoi.

Merci encore

André Moreau
"Olivier Miakinen" <om+ a écrit dans le message de news:
ed72ci$iii$

Je souhaitais justement faire celà mais intégralement en javascript sans
appel à quoi que ce soit d'autre...


D'une certaine façon, AJAX et XMLHttpRequest, ce n'est que du javascript
et rien d'autre. Inversement, si tu considères que ce n'est pas du
javascript pur, alors document.write ne l'est pas non plus, de même que
toute manipulation du DOM.

En outre, si tu veux t'interdire de faire plusieurs requêtes HTTP pour
obtenir la totalité de ta page (ce qui au passage me semble une bonne
idée question performances), alors ladite page doit contenir tout ce
qu'il faut au départ. Dans ce cas, autant mettre le tout dans l'ordre
dès le départ, sans JavaScript, mais avec SSI ou PHP par exemple.

de plus si ça fonctionne dans IE et Firefox, je suis obligé d'être
certain que ça fonctionne aussi sous Safari et dans les browser de
Linux !


On peut comprendre ta phrase de deux façons opposées.

1) Voir que cela fonctionne dans IE et FireFox t'oblige à considérer
comme certain que cela fonctionnera aussi dans Safari et tous les
navigateurs de Linux. (C'est faux.)

2) Même si cela fonctionne dans IE et FireFox, tu es par ailleurs obligé
de t'assurer que cela fonctionne dans les autres navigateurs cités.
(Personne d'autre que toi ne peut savoir si c'est vrai ou pas.)

La façon de résoudre le problème actuellement était de concaténer des
fichiers html en un seul pas un simple batch, mais si ça pouvait se faire
tout seul en incluant une commande correcte dans un fichier html, ce
serait
mieux.


La seule solution fiable est côté serveur (Server Side Include, PHP,
Perl, CGI en C, etc.)

J'avais bien essayé avec des frames et des iframes mais l'instabilité
de résultats suivant les browsers m'avait déçu.


Et donc la seule solution fiable est côté serveur.

"O.L." a écrit dans le message de news:

[ citation intégrale, signature comprise ]



Merci de lire http://www.faqs.org/faqs/fr/usenet/repondre-sur-usenet/




Avatar
ASM
Merci pour la réponse si complète... je m'en vais étudier celà en
profondeur.

Quant à l'interprétation de la compatibilité, c'est bien sous Linux, Mac et
Pc que je dois la garantir, en évitant toutefois les solutions obsolètes.

Un petit (java)script, appelé dans le header m'avait permis d'alléger
l'ensemble d'un site, les menus déroulants qu'il autorisait étaient commun à
l'ensemble de pages.


Confier son site au JavaScript (pour son fonctionnement) est une
mauvaise idée. Même si des Entreprises informatiques de renom se le
permettent.

Mais je suis aussi resté un indécrotable partisan des
tableaux laissant au CSS la seule gestion des 'styles de paragraphes'.


Rhaa la la !
Ce n'est pas bien.
Ça ne facilite pas le maintien des pages. (leurs possibles évolutions)

Ancienne habitude d'une carrière passant du papier à la PAO


Il n'y a pas de tableaux en P manuelle ou AO (pour mettre en place les
éléments, même s'il peut il y avoir une grille et un gabari)

et puis au Web.
Graphiste est mon métier de base et comme eux, j'apprécie ce qui reste en
place et ne fait pas faux bonod... affichant une sainte horreur aux
scrollbars. Toutefois je constate que pas mal de code reste commun à
beaucoup de mes pages et "bis repetita non placent" préférerait éviter les
doublons, redondances et autres bégayements. La solutions de concaténer le
contenu du header, les définitions de tableaux puis le contenu variable par
page me semblait élégant mais comme je n'ai pas la main mise quand au choix
de l'hébergement, je ne peux dépendre de Asp ou Php pour la solution. Donc
je recherchais un moyen interne au Html, multi-serveur quoi.


Une solution simple et basique côté serveur pour les inclusions des
redondances sont les SSI.
Je serais très curieux de connaître quel serveur-hébergeur ne supporte
pas les SSI.

tutoriel en fr :
http://www.scarabee.com/TRANCHES/SSI/publicvise.shtml
tutoriel chez Apache en en :
http://httpd.apache.org/docs/2.0/howto/ssi.html
autre en en :
http://www.irt.org/articles/js166/index.htm

Merci encore


Pas de quoi.

André Moreau



--
Stephane Moriaux et son [moins] vieux Mac

Avatar
andre moreau
Si, si...si.... en PAO il y avaient des tableaux...
et même inplémenter avec des puissantes fonctions au départ permettant de
définir, de diviser ou de fusionner les cellules, d'en choisir
spécifiquement les bordures et fonds et d'accrocher à chaque cellule le
contenu venant d'un fichier externe, qu'il soit image ou texte... en plus on
pouvait exporter le tout à l'époque en SGML.

Malheureusement, ça date de Verdun et ça s'appelait Ventura. Son passage de
GEM sous Windows signa sa mort (même s'il existe toujours mais n'a plus
jamais fonctionné correctement). Mon plus gros travail sous Ventura comptait
13 langues et 13000 pages !

En ce qui concerne l'hébergeur, je "signe" le design des sites dont je
conçois la présentation (à l'intérieur de contingences techniques liées aux
outils employés - celui que je préfère restant notepad) mais chaque client
est hébergé chez son propre fournisseur proposant l'un Asp, l'autre Php ou
exigeant dans certains cas des abonnements spécifiques ! Donc je privilégie
une solution fonctionnant partout. Les nombres de pages sont d'ailleurs
souvent restreints et le changement du contenu loin d'être quotidien, non
par insouciance mais ce n'est pas nécessaire.

Merci

André Moreau
Avatar
Pierre Goiffon
andre moreau wrote:
Merci pour cette première réponse,


Merci de répondre en respectant les usages... Car sinon cela complique
grandement la lecture des fils !
Tout est très bien décrit dans cet excellent document :
http://www.faqs.org/faqs/fr/usenet/repondre-sur-usenet/

La façon de résoudre le problème actuellement était de concaténer des
fichiers html en un seul pas un simple batch


Il existe plusieurs pré-processeurs qui sont très performants, et
utilisés par bcp de monde avec succès. Est-ce que par "batch" vous
entendiez une solution bricolée ou l'usage d'un de ces logiciels ?

J'avais bien essayé avec des frames et des iframes mais l'instabilité
de résultats suivant les browsers m'avait déçu.


Je suis assez surpris, les iFrame étant particulièrement bien
implémentées (largement plus "visibles" que des solutions à base de
XMLHttpRequest en tout cas)
Pourriez vous détailler les prb rencontrés ?

Avatar
andre moreau
Les usages ne sont pas lois et ceux de la politesse varie d'un pays à
l'autre, même proche. Ainsi qu'en est-il de l'ancien usage de laisser la
place d'une femme sur un trottoir plus près de la chaussée (au risque de se
voir éclaboussée par les véhicules) ou plus près des habitations (au risque
de recevoir ce qui tombe des fenêtre ?). Les usages sont bien souvent une
question de logique et dépendent des circonstances. S'y conformer d'une
façon servile n'est que faiblesse de l'esprit. Ainsi, pourquoi dans un CV
place-t'on, au mépris de l'ordre chronologique l'expérience la plus récente
en premier ? Parce qu'elle est la plus intéressante aux yeux du lecteur. Je
trouve donc que dans les news, obliger un utilisateur à descendre au bas
de -parfois longues- fenêtres est perte de temps, sauf, s'il a besoin de se
remémorer les questions antérieures. En celà, répondre en tête de news me
semble du plus profond respect à l'égard de ceux qui nous lisent.
Mais, rassurez-vous, je ne CRIE jamais.

Bien à vous

André Moreau
"Pierre Goiffon" a écrit dans le message de news:
44f7ec35$0$22507$
andre moreau wrote:
Merci pour cette première réponse,


Merci de répondre en respectant les usages... Car sinon cela complique
grandement la lecture des fils !
Tout est très bien décrit dans cet excellent document :
http://www.faqs.org/faqs/fr/usenet/repondre-sur-usenet/

La façon de résoudre le problème actuellement était de concaténer des
fichiers html en un seul pas un simple batch


Il existe plusieurs pré-processeurs qui sont très performants, et utilisés
par bcp de monde avec succès. Est-ce que par "batch" vous entendiez une
solution bricolée ou l'usage d'un de ces logiciels ?

J'avais bien essayé avec des frames et des iframes mais l'instabilité de
résultats suivant les browsers m'avait déçu.


Je suis assez surpris, les iFrame étant particulièrement bien implémentées
(largement plus "visibles" que des solutions à base de XMLHttpRequest en
tout cas)
Pourriez vous détailler les prb rencontrés ?



Avatar
Laurent vilday
Les usages ne sont pas lois


<snip> quoret quotage
<snip> arguments invalides
<snip> un paquet d'inepties

Réponse : Ca détruit l'ordre de la conversation
Question : Pourquoi ?
Réponse : Poster sa réponse en haut (top-posting)
Question : Quoi de plus ennuyeux sur Usenet ?

Et je parle même pas du changement de titre ou encore d'une réponse dans
ce même thread sans aucun rappel de citation, ce qui m'a obligé
d'afficher l'ensemble de la conversation pour comprendre de quoi il
était question.

Plutôt que de se rebeller en estimant être capable de justifier un
comportement de cochon qui n'est pas et ne sera jamais en aucune manière
justifiable, merci de relire, pardon de *lire*, et de respecter un
minimum ce qui est écrit dans l'url déjà fournie.
http://www.faqs.org/faqs/fr/usenet/repondre-sur-usenet/

Merci.

--
laurent

1 2