Эквивалент include () в HTML - PullRequest
       7

Эквивалент include () в HTML

22 голосов
/ 14 октября 2010

Мне было интересно, есть ли способ включить некоторое содержание html в другой html, используя только html?

Замена PHP

<?php include("file.php"); ?>

Возможно ли это?

EDIT:

Это вызвало некоторую путаницу, мне нужен был «почти html-тег», который имел функцию включения html-документа в другой.

Ответы [ 10 ]

32 голосов
/ 10 ноября 2013

Вы пробовали:

<object type="text/html" data="file.html"></object>
20 голосов
/ 14 октября 2010

Это не может быть сделано исключительно с помощью HTML. (Тем не менее, существуют iframe, но я не думаю, что в данном случае это подходит.)

Это можно сделать с помощью JavaScript. Вы получаете другой файл через Ajax и помещаете его содержимое в элемент HTML на текущей странице.

11 голосов
/ 19 февраля 2014

Бесстыдный плагин библиотеки, которую я написал, решает эту проблему.

https://github.com/LexmarkWeb/csi.js

<div data-include="/path/to/include.html"></div>

Приведенное выше примет содержимое /path/to/include.html и заменит div на него.

7 голосов
/ 14 октября 2010

HTML не имеет встроенной функции для добавления дополнительного контента. Однако большинство веб-серверов имеют операторы включения на стороне сервера:
SSI в Apache
SSI в IIS

6 голосов
/ 14 октября 2010

единственной вещью будет iframe, который является чистым HTML.но вы также можете использовать javascript, чтобы получить страницу через ajax и включить ее в свой домен

3 голосов
/ 30 июня 2013

Это может быть на несколько лет позже, но я так и сделал!

в первой строке после этой строки!

<SCRIPT LANGUAGE="JavaScript" src="http://yourdomain.com/header.js">

затем создайте файл с именем "header".js "и введите содержимое файла, который вы хотите включить!вот так ....

<!-- Begin
document.write('<center>');
document.write('<a href="http://alinktosomewhere.co.za">a link 1</a>');
document.write('<a href="http://alinktosomewhere.co.za">a link 1</a>');
document.write('<a href="http://alinktosomewhere.co.za">a link 1</a>');
document.write('<a href="http://alinktosomewhere.co.za">a link 1</a>');
document.write('<hr>');
document.write('</center>');
// End -->

Надеюсь, это поможет!

3 голосов
/ 14 октября 2010

Если вы используете Apache, вы можете попробовать Server Side Includes.

3 голосов
/ 14 октября 2010

Да, но вам нужно включить его в вашей конфигурации или .htaccess:

Options +Includes
AddType text/html .shtml
AddHandler server-parsed .shtml

Конечно, с этим вам нужно переименовать любой файл с включением в .shtml ... или вы можете просто использовать:

Options +Includes
AddType text/html .html
AddHandler server-parsed .html

сам синтаксис похож на комментарий:

<!--#include virtual="/footer.html" -->
3 голосов
/ 14 октября 2010

Нет такой вещи.Чтобы сделать что-то подобное, вам придется использовать язык сценариев на стороне сервера или JavaScript.

0 голосов
/ 09 июня 2019

Отсутствие Включить \ Импорт в HTML действительно расстраивает!

Хорошей альтернативой является «Включение на стороне сервера (SSI)» на случай, если «PHP» не поддерживается!

SSI поддерживается практически любым (если не всем) сервером веб-хостинга!

<!--#include virtual="layout.html" -->

Файл, содержащий указанную выше строку, должен заканчиваться расширениями ".shtml" или ".shtm"!


Действительно раздражает, что что-то такое простое, как Include \ Import, не может быть выполнено самим браузером!

Как и php или Node.js, предварительная обработка html с использованием самого Javascript до запуска процесса загрузки HTML должна поддерживаться в любом браузере!

...