2012-01-25 25 views
11

Tengo 2 archivos HTML, supongo a.html y b.html. En a.html Quiero incluir b.html.Incluir archivo html en html usando html5

En JSF puedo hacerlo así:

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

Esto significa que en el interior a.xhtml archivo, puedo incluir b.xhtml.

¿Cómo podemos hacerlo en el archivo *.html?

utilizando html 5 (si se puede hacer en absoluto en html 5).

Respuesta

27

Sorprendentemente, se hizo la misma pregunta y es posible: HTML5 include file

respuesta de Rafa:


Uso del object etiqueta:

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

foo.inc debe incluir HTML válido .


Lo probé en Konqueror, Firefox y Chromium.

Tenga en cuenta que debe utilizar una etiqueta </object> separada de lo contrario cualquier contenido después de que se descarta.

Si le parece útil (lo hago), responda por favor a Rafa (no a la mía) porque "no es posible" se está propagando como una enfermedad.

+4

Es algo horrible de hacer. –

+1

Muy útil para maquetas de diseño ... – Magnus

+2

+1 PERO el [validador W3C] (http://validator.w3.org/) no le gusta y cosas después de que el "incluir" no se muestra (en Chrome, I no probó otros navegadores). W3C se opuso a la etiqueta de cierre automático. Lo reemplacé por una terminación '' y se validó y se muestran las siguientes cosas. – Mawg

1

HTML5 no es diferente de HTML 4.01 en este sentido en que esto simplemente no se puede hacer sin secuencias de comandos de algún tipo.

+1

Por qué no, es tan trivial. – lolo

+3

El lenguaje HTML (de cualquier versión) está destinado simplemente a ser un sistema para interconectar documentos. Los dos idiomas principales que se conectan a HTML son CSS, que tiene el objetivo de diseñar visualmente un documento, y JavaScript, que es la única parte programable que puede manejar cosas como leer un archivo e insertar su contenido en un documento HTML. Sin embargo, la creación de scripts Serverside es la mejor solución para incluir archivos, ya que esto se puede hacer antes de enviar el documento HTML al cliente. En pocas palabras, HTML no puede hacer incluye porque nunca fue diseñado para hacerlo, y no necesita hacerlo ya que otros idiomas lo hacen en su lugar – Jimmery

6

Si su servidor admite SSI (incluye el lado del servidor) puede poner lo siguiente en sus archivos html sin necesidad de un lenguaje de script o lo que sea. Apache ha permitido SSI por defecto (creo?)

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

"archivo" es relativo al archivo actual, y probablemente la que se uso para la inclusión de archivos relacionados, como "relevant_article_poll.html".

"virtual" es relativo a la raíz del documento (es decir, la raíz de su sitio web) y lo usaría para incluir archivos globales, como encabezados y pies de página.

No importa cuál elija, pero es útil saber la diferencia entre los dos.

Además, la directiva include realiza una nueva solicitud http interna al servidor para cada archivo, por lo que podría incluir archivos php y "me gusta" y se ejecutarían como deberían.

Aquí está una descripción útil de SSI: http://en.wikipedia.org/wiki/Server_Side_Includes

+0

Esta es una gran y simple opción para los desarrolladores de FE que están desarrollando prototipos. Hace que sea mucho más fácil desglosar el margen para el desarrollo de componentes en otro marco, es decir, AEM. – Roralee

3

Para utilizar la función de PHP incluir en HTML5, sólo hay que editar su.htaccess de la siguiente manera:

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

Ahora puede utilizar cualquier código PHP en su archivo html como esto:

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

Saludos;)

Cuestiones relacionadas