Esto es un poco viejo, pero ya que "la plantilla HTML de carga con JavaScript "hoy en día debería referirse a la carga de un HTMLTemplateElement
aquí hay un enfoque más moderno para cargar plantillas nativas con javascript que también funciona para su caso de uso.
En primer lugar, usar <template>
ya es mejor que cargar HTML en un DIV oculto porque las plantillas son internas y no muestran el contenido. Puede hacer que las plantillas se representen desde el principio y usarlas cuando lo necesite.
<html>
<head>
<template>My template</template>
</head>
<body>
<script>
document.body.append(
document.importNode(
document.querySelector('template').content,
true
)
)
</script>
</body>
</html>
O créelos dinámicamente.
const template = document.createElement('template')
// modify the template's content
template.content.append(document.createElement('div'))
// add it to the document so it is parsed and ready to be used
document.head.append(template)
Porque queremos que el contenido de la plantilla que se construirá sobre la base de un texto que obtenemos de la red, tenemos que analizarlo y añadirlo a nuestra template.content
.
const text = fetchTemplateSomehowAsText('my-template.html')
const parsedDocument = new DOMParser().parseFromString(text, 'text/html')
template.content.append(parsedDocument.querySelector('#my-snippet'))
Si my-template.html
ya viene envuelto en la etiqueta <template>
podemos evitar la parte de crear el elemento de plantilla de forma manual debido a que el DOMParser ya se crea el elemento de plantilla para nosotros.
document.head.append(
new DOMParser().parseFromString(text, 'text/html')
.querySelector('template')
)
)
This es un fragmento que he estado usando para cargar plantillas en el documento de forma dinámica que utiliza lo que acabo de explicar.
Gracias, Esto hizo el truco exactamente como se requiere. Ian – iancrowther
Algún código de ejemplo siempre es bueno.Es por eso que prefiero la respuesta de peterp –