Estoy trabajando con un CMS, que evita la edición de la fuente HTML para el <head>
elemento.
Por ejemplo, quiero agregar lo siguiente encima de la <title>
etiqueta:
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
javascript
jquery
css
xhtml
Jitendra Vyas
fuente
fuente
<meta>
etiquetas dinámicamente no tenga ningún efecto, dependiendo de qué son y qué navegador está involucrado.Respuestas:
Puede seleccionarlo y agregarlo como de costumbre:
fuente
insertBefore
,insertAfter
es lo que desea.JavaScript:
Haga el elemento DOM así:
fuente
jQuery
JavaScript:
fuente
...
porque no sentía que fuera una parte central de la pregunta, y además, en el momento de escribir este artículo, no había un ejemplo práctico de lo que él quería poner en la cabeza. pero sí, debe ser un elemento DOM.Puede usar
innerHTML
para concatizar la cadena de campo adicional;Sin embargo, no puede garantizar que el navegador reconozca las cosas adicionales que agregue al encabezado después de la primera carga, y es posible que obtenga un FOUC (flash de contenido sin estilo) a medida que se cargan las hojas de estilo adicionales.
No he mirado la API en años, pero también podrías usar
document.write
, que es lo que fue diseñado para este tipo de acción. Sin embargo, esto requeriría que bloquee la representación de la página hasta que se complete su solicitud AJAX inicial.fuente
En los últimos navegadores (IE9 +) también puede utilizar document.head :
Ejemplo:
fuente
Cree un elemento temporal (p. Ej.
DIV
), Asigne su código HTML a suinnerHTML
propiedad y luego agregue sus nodos secundarios alHEAD
elemento uno por uno. Por ejemplo, así:En comparación con la reescritura del
HEAD
contenido completo a través de suinnerHTML
, esto no afectaría a los elementos secundarios existentes delHEAD
elemento de ninguna manera.Tenga en cuenta que los scripts insertados de esta manera aparentemente no se ejecutan automáticamente, mientras que los estilos se aplican correctamente. Entonces, si necesita que se ejecuten scripts, debe cargar archivos JS usando Ajax y luego ejecutar su contenido usando
eval()
.fuente
body
, pero ¿realmente se puede hacer dentro delhead
-tag? Yo tenía la impresión de que las etiquetas sólo se admiten en dondebase
,link
,meta
,title
,style
yscript
?DIV
elemento es solo un contenedor temporal con el propósito de analizar el código HTML . No debe insertar elDIV
propio en elHEAD
. Debes insertar sus nodos secundarios . Vea el ejemplo que agregué a la respuesta.temp
elemento". Consulte la documentación de Node.firstChild () .Prueba un javascript puro:
Biblioteca JS:
Tipo:
appendHtml(document.head, '<link rel="stylesheet" type="text/css" href="http://example.com/example.css"/>');
o jQuery:
fuente
Con jquery tienes otra opción:
de todos modos está funcionando. Opción de JavaScript que otros dijeron, eso también es correcto.
fuente
.html()
no recuperará todas las propiedades DOM. (La instancia más común de este problema, y la más visible, es cuando se usa un código similar para agregar nuevos campos a un formulario. El atributo de valor representa el valor predeterminado de un campo, por lo que obtenerlohtml()
y luego restablecerlo restablecerá todos los campos existentes. campos a sus valores predeterminados).