У меня был вопрос, заданный мне на днях другим программистом. Я помню (давным-давно) удивляюсь тому же самому. Почему тег включения на стороне браузера никогда не рассматривался? Или это было?
В частности, с тегом, который инструктировал браузер включать дополнительный HTML из других источников. например<include src="http://server/foo/bar.html">
. Многие люди будут делать вызовы javascript и заполнять их, innerHTML
чтобы выполнить то же самое, когда то же самое вне механизма javascript может быть выполнено браузером.
Было бы больно иметь вложенные <HTML>
s <BODY>
(то есть), но мы все равно должны рассмотреть этот аспект где угодно.
Ответы:
Я последний человек на земле, который помнит (только для Netscape 4 )
layer
иilayer
теги?Netscape 4 также позволил
div
тегу иметьsrc
атрибут, который совершил то же самое.Netscape отправил их W3C, который решил не включать их - используйте
iframe
вместо этого.источник
document
объект, на который распространяется та же политика происхождения; они были эффективно позиционируемым iframe.Это, безусловно, было запрошено каждым новичком в сети, который еще не разработал Server Side Includes, еще в первые дни в списке www-html. Но в те дни W3 были рады полностью игнорировать давление веб-авторов.
Если бы было разрешено включение между сайтами, это было бы катастрофой для безопасности. Вы можете извлечь страницу из банка пользователя и прочитать с нее содержимое. (Первоначально сценарии DOM были ограничены, но вы все равно могли читать из них
document.links
,document.images
функции сценариев отбрасывались на целевой странице и т. Д. С тех пор вы можете делать то, что вам нравится, с импортированным контентом.)Если бы межсайтовое включение не было разрешено ... ну, тогда у этой функции не было бы никаких преимуществ перед серверными включениями. Для клиента было бы более медленной работой, чтобы сервер мог справиться лучше. В отличие от
<iframe>
, включение должно было бы заблокировать загрузку страницы. SSI будут во всех отношениях превосходить.источник
Они сделали. Это стало
<frameset>
тегом. Вскоре они добавили<iframe>
тег.Большинство ранних веб-серверов, поддерживаемых серверными включениями, поэтому текстовое включение на стороне клиента, вероятно, считалось ненужным, учитывая, что та же функциональность была доступна и с фреймами.
источник
<iframe>
. Вот что это за . Это действительно не сильно отличается от<div>
сoverflow:auto;
Объект по-прежнему отображается в кадре, и у вас нет доступа DOM к «данным». То, что разработчики должны были дать несколько лет назад, это способ включить фрагменты с простым тегом. Даже если у этого тега есть ограничения в изолированной программной среде домена, было бы весьма полезно разделить функции, улучшить обслуживание и воспользоваться кэшированием браузера.
Я знаю, что есть много хороших плагинов jquery, которые делают это, и множество серверных сценариев, но нет веских причин не поддерживать такой тег. ИМО, это хороший вопрос "Почему нет клиентского тега включения?"
Если вам нравится jquery, вот хороший клиентский сценарий включения: inc: очень тонкий клиентский плагин jQuery
источник
Ты пробовала
Я думаю, что это реализовано в большинстве браузеров.
источник
Варианты
<include>
тега действительно рассматривались в ранней истории HTML , но они никогда не заходили слишком далеко.источник