Įtraukti kitą HTML failą į HTML failą

Turiu 2 HTML failus, tarkime, a.html ir b.html. Į a.html noriu įtraukti b.html.

JSF galiu tai padaryti taip:

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

Tai reiškia, kad a.xhtml failo viduje galiu įtraukti b.xhtml.

Kaip tai padaryti *.html faile?

Sprendimas

Mano nuomone, geriausias sprendimas yra jQuery:

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>

Šis metodas yra paprastas ir švarus mano problemos sprendimas.

"jQuery" .load() dokumentacija yra čia.

Komentarai (20)

Mano sprendimas yra panašus į lolo sprendimą. Tačiau aš įterpiu HTML kodą per JavaScript's document.write, o ne per 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>\
\
');

Priežastis, dėl kurios nesu linkęs naudoti jQuery, yra ta, kad jQuery.js yra ~90kb dydžio, o aš noriu, kad įkeliamų duomenų kiekis būtų kuo mažesnis.

Kad be didelio vargo gautumėte tinkamai išskleistą JavaScript failą, galite naudoti šią sed komandą:

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

Arba tiesiog naudokite šį patogų bash skriptą, paskelbtą "Gist" svetainėje "Github", kuris automatizuoja visus būtinus darbus ir paverčia b.html į b.js: https://gist.github.com/Tafkadasoh/334881e18cbb7fc2a5c033bfa03f6ee6.

Už patobulintą sed komandą, kurioje taip pat išvengiama atgalinių pasvirųjų brūkšnių ir viengubų kabučių, į kurias mano originali sed komanda neatsižvelgė, dėkojame Greg Minshall.

Naršyklėse, kurios palaiko šabloninius literatūrinius žodžius, taip pat veikia ši komanda:

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>

`);
Komentarai (10)

Jei turite prieigą prie serverio .htaccess failo, kaip alternatyvą galite pridėti paprastą direktyvą, kuri leis php interpretuoti failus, kurių plėtinys baigiasi .html.

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

Dabar galite naudoti paprastą php skriptą, kad įtrauktumėte kitus failus, pvz:

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