Htmlのみを使用して別のhtml内にいくつかのhtmlコンテンツを含める方法があるかどうか疑問に思いましたか?
PHPの代替品
<?php include("file.php"); ?>
これは可能ですか?
編集:
これにより混乱が生じました。必要なのは、別のドキュメントにhtmlドキュメントを含める機能を備えた「ほぼhtmlタグ」でした。
純粋にHTMLだけで行うことはできません。 (ただし、iframeはありますが、この場合は適格ではないと思います。)
JavaScriptを使用して実行できます。他のファイルはAjaxを介して取得し、そのコンテンツを現在のページのHTML要素内に配置します。
やってみました:
<object type="text/html" data="file.html"></object>
私が書いたライブラリの恥知らずなプラグはこれを解決します。
https://github.com/LexmarkWeb/csi.js
<div data-include="/path/to/include.html"></div>
上記は/path/to/include.html
の内容を取得し、div
をそれに置き換えます。
HTMLには、追加のコンテンツをネイティブに含める機能はありません。ただし、ほとんどのWebサーバーにはサーバーサイドインクルードステートメントがあります。
ApacheのSSI
IISのSSI
唯一のものは純粋なhtmlであるiframeです。ただし、javascriptを使用してajax経由でページを取得し、それをdomhirarchyに含めることもできます。
そのようなことはありません。このようなことを行うには、サーバーサイドスクリプト言語またはJavaScriptを使用する必要があります。
はい、ありますが、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" -->
Apacheを使用している場合は、 Server Side Includes
。
これは数年遅れるかもしれませんが、これは私がそれをした方法です!
この行を入れた後の最初の行に!
<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 -->
この助けを願っています!
ほぼ10年後、一部の人々はまだこれについて疑問を持っているかもしれません。そこで、2020年に今日私たちが持っている簡単な解決策を説明します。
私は常にjquery.load()関数を使用していますが、問題はありませんでした。
Exemple: ( "#content" ).load( "includes/menu.html" );
HtmlにInclude\Importがないことは、本当に苛立たしいことです。
「PHP」がサポートされていない場合の適切な代替手段は「サーバーサイドインクルード(SSI)」です。
SSIは、ほぼすべての(すべてではないにしても)Webホストサーバーでサポートされています。
<!--#include virtual="layout.html" -->
上記の行を含むファイルは、「。shtml」または「.shtm」拡張子で終わる必要があります。
Include\Importのような簡単なことをブラウザ自体で実行できないのは、本当に迷惑です。
PhpやNode.jsと同様に、HTMLロードプロセスを開始する前にJavascript自体を使用してhtmlを前処理することは、どのブラウザでもサポートされている必要があります。