Entonces obtengo datos a través del método ajax de jquery. Los datos recuperados se parece a:Cómo inyectar CSS en un documento mediante ajax?
<html>
<head>
<style>
body {
color: red;
font-weight: bold;
}
#someElement {
color: blue;
padding: 1em
}
</style>
</head>
<body>
<div id="header">Super</div>
<p>blah blah blah</p>
<div id="footer">Stuff</div>
</body>
</html>
¿Cómo se extrae el estilo e insertarlo en el documento actual, que está ejecutando la llamada AJAX? He intentado todo tipo de conjuros jquery pero no funciona. Ahora estoy extrayendo el CSS a través de expresiones regulares, pero estoy seguro de cómo poner la CSS en la página actual:
$.ajax({
url: '/template.html',
success: function(data) {
$("#header").html($(data).find('#header').html());
$("#footer").html($(data).find('#footer').html());
var re = /<style>((?:[\n\r]|.)+)<\/style>/m;
var css = re.exec(data);
// What to do with the css??
return;
}
});
que inicialmente tenía una hoja de estilo a continuación, simplemente hizo lo siguiente:
if($.browser.msie) {
$('head').html(
'<link rel="stylesheet" href="http://c.this/template.css" type="text/css" />'+
$('head').html()
);
}
else {
$('head').prepend('<link rel="stylesheet" href="http://c.this/template.css" type="text/css" />');
}
que funciona excepto en IE8 causa algunos problemas.
Parece que el selector jQuery está buscando un elemento con una identificación de 'cabeza'. Es posible que desee probar con '$ (" cabeza "). Html ($ (datos) .find (" cabeza "). Html());' –
@josh esa parte está funcionando bien. Acabo de actualizar el ejemplo, por lo que dice #header en lugar de #head para mostrar que no estoy interesado en el elemento principal. Gracias. – PaulS