Inkludere en annen HTML-fil i en HTML-fil

Jeg har to HTML-filer, la oss si a.html og b.html. I a.html ønsker jeg å inkludere b.html.

I JSF kan jeg gjøre det slik:

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

Det betyr at inne i a.xhtml-filen kan jeg inkludere b.xhtml.

Hvordan kan vi gjøre det i *.html-filen?

Løsning

Etter min mening bruker den beste løsningen jQuery:

a.html:



    <script src="jquery.js"></script> 
    <script> 
    $(function(){
      $("#includedContent").load("b.html"); 
    });
    </script> 



     <div id="includedContent"></div>

b.html:

<p>This is my include file</p>

Denne metoden er en enkel og ren løsning på problemet mitt.

Dokumentasjonen for jQuery .load() er her.

Kommentarer (20)

Løsningen min ligner den til lolo ovenfor. Imidlertid setter jeg inn HTML-koden via JavaScript&# 39s document.write i stedet for å bruke jQuery:

a.html:



  <h1>Put your HTML content before insertion of b.js.</h1>
      ...

  <script src="b.js"></script>

      ...

  <p>And whatever content you want afterwards.</p>

b.js:

document.write('\
\
    <h1>Add your HTML code here</h1>\
\
     <p>Notice however, that you have to escape LF's with a '\', just like\
        demonstrated in this code listing.\
    </p>\
\
');

Grunnen til at jeg ikke bruker jQuery er at jQuery.js er ~90kb i størrelse, og jeg ønsker å holde mengden data som skal lastes så liten som mulig.

For å få den riktig rømte JavaScript-filen uten mye arbeid, kan du bruke følgende sed-kommando:

sed 's/\\/\\\\/g;s/^.*$/&\\/g;s/'\''/\\'\''/g' b.html > escapedB.html

Eller bare bruk følgende praktiske bash-skript publisert som en Gist på Github, som automatiserer alt nødvendig arbeid og konverterer b.html til b.js: https://gist.github.com/Tafkadasoh/334881e18cbb7fc2a5c033bfa03f6ee6

Kreditt til Greg Minshall for den forbedrede sed-kommandoen som også unngår skråstreker og enkle anførselstegn, som min opprinnelige sed-kommando ikke vurderte.

Alternativt for nettlesere som støtter template literals fungerer følgende også:

b.js:

document.write(`

    <h1>Add your HTML code here</h1>

     <p>Notice, you do not have to escape LF's with a '\',
        like demonstrated in the above code listing.
    </p>

`);
Kommentarer (10)

Som et alternativ, hvis du har tilgang til .htaccess-filen på serveren din, kan du legge til et enkelt direktiv som gjør at php kan tolkes på filer som slutter på .html-utvidelsen.

RemoveHandler .html
AddType application/x-httpd-php .php .html

Nå kan du bruke et enkelt php-skript for å inkludere andre filer som f.eks:

<?php include('b.html'); ?>
Kommentarer (5)