Une autre question m'a été posée l'autre jour par un autre programmeur. Je me souviens (il y a très longtemps) de me demander la même chose. Pourquoi une balise include côté navigateur n'a-t-elle jamais été prise en compte? Ou était-ce?
Plus précisément avec une balise qui a demandé au navigateur d'inclure du HTML supplémentaire provenant d'autres sources. par exemple <include src="http://server/foo/bar.html">
. Beaucoup de gens feront des appels javascript et se rempliront innerHTML
pour accomplir la même chose, quand la même chose en dehors du moteur javascript pourrait être accomplie par le navigateur.
Il aurait été douloureux d'imbriquer des <HTML>
s <BODY>
(c.-à-d.), Mais nous devons quand même considérer cet aspect n'importe où.
Réponses:
Suis-je la dernière personne sur terre à se souvenir de ( Netscape 4 uniquement )
layer
et desilayer
tags?Netscape 4 a également permis à la
div
balise d'avoir unsrc
attribut, ce qui a accompli la même chose.Netscape les a soumis au W3C, qui a choisi de ne pas les inclure - utilisez
iframe
plutôt.la source
document
objet séparé soumis à la même politique d'origine; ils étaient effectivement un iframe positionnable.Il a certainement été demandé par tous les auteurs de sites Web débutants qui n'avaient pas encore travaillé sur les inclusions côté serveur, au début de la liste www-html. Mais à cette époque, W3 était heureux d'ignorer complètement la pression des auteurs Web.
Si l'inclusion intersite était autorisée, ce serait un désastre de sécurité. Vous pouvez extraire une page de la banque de l'utilisateur et en lire le contenu. (À l'origine, les scripts DOM étaient limités, mais vous pouviez toujours lire
document.links
, lesdocument.images
fonctions de script abandonnées par la page cible, etc. Depuis, vous pouvez faire ce que vous voulez avec le contenu importé.)Si l'inclusion intersite n'était pas autorisée ... eh bien, la fonctionnalité n'aurait aucun avantage sur les inclusions côté serveur. Ce serait un travail plus long et plus lent pour le client que le serveur aurait pu mieux gérer. Contrairement à
<iframe>
, une inclusion devrait bloquer le chargement de la page. Les SSI seraient à tous égards supérieurs.la source
Ils l'ont fait. C'est devenu le
<frameset>
tag. Peu de temps après, ils ont ajouté la<iframe>
balise.La plupart des premiers serveurs Web pris en charge incluent les inclusions côté serveur, donc une inclusion textuelle côté client était probablement considérée comme inutile, étant donné que la même fonctionnalité était également disponible avec les cadres.
la source
<iframe>
. C'est ce qu'il est pour . Ce n'est vraiment pas très différent d'un<div>
avecoverflow:auto;
L'objet s'affiche toujours dans un cadre et vous n'avez aucun accès DOM aux "données". Ce que les développeurs auraient dû recevoir il y a des années est un moyen d'inclure des extraits avec une simple balise. Même si cette balise avait des restrictions de sandbox de domaine, il serait très utile de compartimenter les fonctionnalités, d'améliorer la maintenance et de profiter de la mise en cache du navigateur.
Je sais qu'il existe de nombreux bons plugins jquery qui font cela et beaucoup de scripts côté serveur, mais il n'y a aucune bonne raison de ne pas prendre en charge une telle balise. L'OMI est une bonne question "Pourquoi aucune étiquette d'inclusion côté client?"
Si vous aimez jquery, voici un bon script d'inclusion côté client: inc: Un super-petit côté client inclut le plugin JavaScript jQuery
la source
As-tu essayé
Je pense que c'est implémenté dans la plupart des navigateurs.
la source
Les variantes d'une
<include>
balise ont certes été envisagées au début de l'histoire du HTML , mais elles ne sont jamais allées très loin.la source