2010-10-13 16 views
17

Mi chiedevo se esiste un modo per includere del contenuto html all'interno di un altro html usando solo html?Equivalente di include() in HTML

Una sostituzione per PHP

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

è possibile?

EDIT:

Questo ha portato un po 'di confusione, quello che mi serviva era "quasi un tag HTML" che aveva la funzionalità di includere un documento HTML in un altro.

+1

HTML5 lo fa. Ma non al momento. – Jake

+0

@Jake che è bello sapere. Come verrà chiamata la funzione? – Trufa

+2

@Trufa Credo che stia parlando dell'attributo 'seamless' di HTML5 per iframe (https://html.spec.whatwg.org/#attr-iframe-seamless), ma al momento il supporto è piuttosto deprimente: http : //caniuse.com/#feat=iframe-seamless – waldyrious

risposta

18

Non può essere fatto solo da HTML. (Ci sono iframe, tuttavia, ma non credo che si qualifichino in questo caso.)

Si può fare usando JavaScript. Ottieni l'altro file tramite Ajax e posiziona il suo contenuto all'interno di un elemento HTML nella pagina corrente.

+0

Sono molto limitato, in realtà sto chiedendo le pagine della scheda fmbl in facebook. – Trufa

3

Non esiste una cosa del genere. Dovresti usare un linguaggio di scripting lato server o JavaScript per fare qualcosa del genere.

1

Sì, c'è, ma è necessario abilitarlo nella configurazione o .htaccess:

Options +Includes 
AddType text/html .shtml 
AddHandler server-parsed .shtml 

Naturalmente con quel bisogno youd per rinominare qualsiasi tipo di file tra cui fare la a .shtml ... oppure si potrebbe finite uso :

Options +Includes 
AddType text/html .html 
AddHandler server-parsed .html 

la sintassi stessa è simile a commentare:

<!--#include virtual="/footer.html" --> 
+3

non è html. –

+0

no, ma non richiede nemmeno qualcosa come PHP. – prodigitalson

+0

Questo include un lato server, non un semplice HTML. Altrettanto facile, se non più facile, usare JavaScript probabilmente. –

5

t l'unica cosa sarebbe un iframe che è puro html. ma puoi anche usare javascript per ottenere la pagina tramite ajax e includerla nella tua domirania

+0

No, non posso usare iframe. grazie – Trufa

6

HTML non ha una funzionalità per includere il contenuto aggiuntivo in modo nativo. Tuttavia la maggior parte dei server web hanno lato server comprendono dichiarazioni:
SSI in Apache
SSI in IIS

2

Questo potrebbe essere un paio di anni di ritardo, ma questo è come ho fatto!

nella prima riga dopo aver inserito questa riga!

<SCRIPT LANGUAGE="JavaScript" src="http://yourdomain.com/header.js"> 

quindi creare un file chiamato "header.js" e inserire il contenuto del file che si desidera includere! in questo modo ....

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

Spero che questo aiuto!

+2

Uno svantaggio è che gli utenti senza JavaScript abilitati non vedranno il contenuto scritto in questo modo. Questo include attualmente i crawler dei motori di ricerca, quindi il contenuto non verrà mostrato nei motori di ricerca. –

+1

Okay ... non ci pensava! t – Cavemanharris

+0

Non so perché questo ha così tanti downvotes. È buono come la maggior parte delle soluzioni qui. – EML

29

Hai provato:

<object type="text/html" data="file.html"></object> 
+0

è geniale! – cnlevy

+3

Molto bello ma ho almeno un trabocchetto che ho trovato: almeno in chrome, facendo clic su un collegamento all'interno del frame dell'oggetto, per impostazione predefinita, apri il nuovo link INSIDE dell'oggetto, piuttosto che nel browser. Impostare i target dei collegamenti su target = "_ top" nel file incluso è una soluzione possibile. –

9

spudorato di una libreria che ho scritto il risolvere questo problema.

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

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

Quanto sopra avrà il contenuto di /path/to/include.html e sostituire il div con esso.

+0

Assolutamente meraviglioso! Funziona perfettamente ... – Varun

+1

non funziona per 'chrome' – javadba

+0

@javadba hai aggiunto' --allow-file-access-from-files' al runtime chrome come descritto nel repository readme? –