2012-01-25 22 views
11

Ho 2 file HTML, supponiamo a.html e b.html. In a.html voglio includere b.html.Include il file html in html utilizzando html5

In JSF posso farlo così:

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

Significa che all'interno a.xhtml di file, posso includere b.xhtml.

Come possiamo farlo nel file *.html?

utilizzando html 5 (se può essere fatto in tutti in html 5).

risposta

27

Sorprendentemente, la stessa domanda è stato chiesto ed è possibile: HTML5 include file

risposta di Rafa:


Utilizzare la object tag:

<object name="foo" type="text/html" data="foo.inc"></object> 

foo.inc dovrebbe includere HTML valido .


L'ho provato su Konqueror, Firefox e Chromium.

Nota è necessario utilizzare un tag </object> separato, altrimenti qualsiasi contenuto dopo essere stato scartato.

Se lo trovi utile (lo faccio), per favore rispondi alla risposta di Rafa (non mia) perché "non è possibile" si sta diffondendo come una malattia.

+4

È una cosa orribile da fare. –

+1

Molto utile per i prototipi di design ... – Magnus

+2

+1 MA il [W3C validator] (http://validator.w3.org/) non gli piace e roba dopo che l'inclusione non è stata visualizzata (in Chrome, I non testare altri browser). W3C ha contestato il tag di chiusura automatica. L'ho sostituito con un finale '' e è stato convalidato e visualizzato il seguente materiale. – Mawg

1

HTML5 non è diverso da HTML 4.01 in questo senso, in quanto ciò non può essere fatto semplicemente senza script di qualche tipo.

+1

Perché no, è così banale. – lolo

+3

Il linguaggio HTML (di qualsiasi versione) è semplicemente inteso come sistema per l'interconnessione di documenti. I due linguaggi principali che si basano su HTML sono i CSS, che è destinato allo stile visivo di un documento, e JavaScript, che è l'unica parte programmabile in grado di gestire cose come leggere un file e inserirne il contenuto in un documento HTML. Lo scripting di server è la soluzione migliore per includere i file, tuttavia, poiché ciò può essere fatto prima che il documento HTML venga inviato al client. In parole povere, l'HTML non può fare include perché non è mai stato progettato per, e non ha bisogno di come invece lo fanno altre lingue – Jimmery

6

Se il server supporta SSI (lato server incluso) è possibile inserire quanto segue nei file html senza bisogno di un linguaggio di scripting o altro. Apache ha SSI abilitato per impostazione predefinita (credo?)

<!--#include file="same_path_file.html" --> 
<!--#include virtual="docroot_file.html" --> 

"file" è relativo al file corrente, e probabilmente quello che si potrebbe utilizzare per l'inclusione di file correlati come "relevant_article_poll.html".

"virtuale" è relativo alla radice del documento (ovvero, la radice del tuo sito Web) e lo utilizzerai per includere file globali, come intestazioni e piè di pagina.

Non importa quello che si sceglie, ma è utile conoscere la differenza tra i due.

Inoltre, la direttiva include rende una nuova richiesta http interna al server per ogni file, in modo da poter includere file php e simili e sarebbero eseguiti come dovrebbero.

Ecco una panoramica utile di SSI: http://en.wikipedia.org/wiki/Server_Side_Includes

+0

Questa è una grande e semplice opzione per FE Devs che sta sviluppando prototipi e rende molto più facile suddividere il mark-up per lo sviluppo di componenti in un altro framework, ad esempio AEM. – Roralee

3

Per utilizzare la funzione di PHP includere in HTML5, è sufficiente modificare il.file .htaccess come segue:

<Files *.html> 
ForceType application/x-httpd-php 
</Files> 

Ora è possibile utilizzare qualsiasi codice PHP nel file HTML in questo modo:

<?php include 'menu.html'; ?> 

Saluti;)