L’ajout de règles css avec une méthode text à un élément de style ne fonctionne pas dans IE

Cela fonctionne bien dans Firefox et Chrome, mais ne fonctionne pas dans IE8. Voici la structure html:

      $(function() { // this does not work in IE $('').text('body {margin: 0;}').appendTo('head'); });      

Et quelle est l’alternative de faire cela dans IE?

Cela fonctionne pour moi dans IE7:

 $('').appendTo($('head')); 

Une autre syntaxe qui pourrait être plus facile à lire:

 $('head').append(''); 

Cependant, appeler .text(val) ou .html(val) pour définir le contenu de la balise de style provoquera la levée d’une exception, car ils définissent la propriété innerHTML DOM qui est en lecture seule.

Voici la documentation d’ IE sur la propriété innerHTML :

La propriété est en lecture / écriture pour tous les objects sauf les suivants, pour lesquels elle est en lecture seule: COL, COLGROUP, FRAMESET, HEAD, HTML, STYLE, TABLE, TBODY, TFOOT, THEAD, TITLE, TR.

Personnellement je le ferais.

 var styles = { margin: '0', padding: '5px', border: 'solid 0px black' } $('body').css(styles); 

J’avais le même problème avec un plug-in de dépendance pour jQuery, utilisez simplement ce code:

 $('head').append(''); 

alors votre code fonctionnera dans presque tous les navigateurs, ici “contenu” est une variable que vous définissez en externe et qui contiendra les données que vous souhaitez insérer dans les balises

. cela fonctionnera certainement.

Pour charger dynamicment un fichier CSS à l’aide de JQuery.

 var link = $(""); link.attr({ type: 'text/css', rel: 'stylesheet', href:  }); $("head").append( link ); 

try: $('

').load("style.css",function(style){ $(data.appendTo).append('

'); });

Essayez la fonction css dans jQuery:

 $( 'body' ).css( { margin: 0 } )