802 Stimmen

Eine andere HTML-Datei in eine HTML-Datei einfügen

Ich habe 2 HTML-Dateien, nehmen wir an a.html y b.html . Unter a.html Ich möchte Folgendes aufnehmen b.html .

In JSF kann ich das auch so machen:

<ui:include src="b.xhtml" />

Das bedeutet, dass im Inneren a.xhtml Datei, kann ich Folgendes einfügen b.xhtml .

Wie können wir das tun in *.html Datei?

71voto

bjb568 Punkte 10397

Skripte sind nicht erforderlich. Keine Notwendigkeit, irgendwelche ausgefallenen Dinge serverseitig zu tun (obwohl das wahrscheinlich eine bessere Option wäre)

<iframe src="/path/to/file.html" seamless></iframe>

Da alte Browser keine nahtlose Darstellung unterstützen, sollten Sie etwas Css hinzufügen, um dies zu beheben:

iframe[seamless] {
    border: none;
}

Denken Sie daran, dass bei Browsern, die Seamless nicht unterstützen, beim Anklicken eines Links im Iframe die Rahmen zu dieser Url gehen, nicht zum gesamten Fenster. Eine Möglichkeit, das zu umgehen, ist, alle Links mit target="_parent" obwohl die Browserunterstützung "gut genug" ist.

50voto

Webdesign7 London Punkte 755

Eine einfache serverseitige Include-Direktive zum Einbinden einer anderen Datei, die sich im selben Ordner befindet, sieht wie folgt aus:

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

Sie können auch versuchen:

<!--#include file="a.html" -->

37voto

Aleksandar Vacić Punkte 4363

A sehr alte Lösung Ich habe meine Bedürfnisse damals erfüllt, aber hier ist, wie man es zu tun Standards-konformen Code:

<!--[if IE]>
<object classid="clsid:25336920-03F9-11CF-8FD0-00AA00686F13" data="some.html">
<p>backup content</p>
</object>
<![endif]-->

<!--[if !IE]> <-->
<object type="text/html" data="some.html">
<p>backup content</p>
</object>
<!--> <![endif]-->

30voto

Hier ist meine Inline-Lösung:

(() => {
    const includes = document.getElementsByTagName('include');
    [].forEach.call(includes, i => {
        let filePath = i.getAttribute('src');
        fetch(filePath).then(file => {
            file.text().then(content => {
                i.insertAdjacentHTML('afterend', content);
                i.remove();
            });
        });
    });
})();

<p>FOO</p>

<include src="a.html">Loading...</include>

<p>BAR</p>

<include src="b.html">Loading...</include>

<p>TEE</p>

27voto

CoolDude Punkte 399

Das Folgende funktioniert, wenn HTML-Inhalte aus einer Datei eingefügt werden müssen: Die folgende Zeile bindet beispielsweise den Inhalt von piece_to_include.html an der Stelle ein, an der die OBJECT-Definition auftritt.

...text before...
<OBJECT data="file_to_include.html">
Warning: file_to_include.html could not be included.
</OBJECT>
...text after...

Referenz: http://www.w3.org/TR/WD-html40-970708/struct/includes.html#h-7.7.4

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X