web-dev-qa-db-ja.com

HTMLのinclude()に相当

Htmlのみを使用して別のhtml内にいくつかのhtmlコンテンツを含める方法があるかどうか疑問に思いましたか?

PHPの代替品

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

これは可能ですか?

編集:

これにより混乱が生じました。必要なのは、別のドキュメントにhtmlドキュメントを含める機能を備えた「ほぼhtmlタグ」でした。

23
Trufa

純粋にHTMLだけで行うことはできません。 (ただし、iframeはありますが、この場合は適格ではないと思います。)

JavaScriptを使用して実行できます。他のファイルはAjaxを介して取得し、そのコンテンツを現在のページのHTML要素内に配置します。

20
Šime Vidas

やってみました:

<object type="text/html" data="file.html"></object>
34
Victor

私が書いたライブラリの恥知らずなプラグはこれを解決します。

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

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

上記は/path/to/include.htmlの内容を取得し、divをそれに置き換えます。

12
Michael Marr

HTMLには、追加のコンテンツをネイティブに含める機能はありません。ただし、ほとんどのWebサーバーにはサーバーサイドインクルードステートメントがあります。
ApacheのSSI
IISのSSI

7
Mr Griever

唯一のものは純粋なhtmlであるiframeです。ただし、javascriptを使用してajax経由でページを取得し、それをdomhirarchyに含めることもできます。

6
ITroubs

そのようなことはありません。このようなことを行うには、サーバーサイドスクリプト言語またはJavaScriptを使用する必要があります。

3
Tyler Treat

はい、ありますが、configまたは.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
prodigitalson

Apacheを使用している場合は、 Server Side Includes

3
Alex Howansky

これは数年遅れるかもしれませんが、これは私がそれをした方法です!

この行を入れた後の最初の行に!

<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 -->

この助けを願っています!

2
Cavemanharris

ほぼ10年後、一部の人々はまだこれについて疑問を持っているかもしれません。そこで、2020年に今日私たちが持っている簡単な解決策を説明します。

私は常にjquery.load()関数を使用していますが、問題はありませんでした。

Exemple: ( "#content" ).load( "includes/menu.html" );
1
Ray

HtmlにInclude\Importがないことは、本当に苛立たしいことです。

「PHP」がサポートされていない場合の適切な代替手段は「サーバーサイドインクルード(SSI)」です。

SSIは、ほぼすべての(すべてではないにしても)Webホストサーバーでサポートされています。

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

上記の行を含むファイルは、「。shtml」または「.shtm」拡張子で終わる必要があります。


Include\Importのような簡単なことをブラウザ自体で実行できないのは、本当に迷惑です。

PhpやNode.jsと同様に、HTMLロードプロセスを開始する前にJavascript自体を使用してhtmlを前処理することは、どのブラウザでもサポートされている必要があります。

0
User