Cela semble très curieux mais j'ai des problèmes pour appliquer des styles aux éléments générés par javascript dans IE7 mais si je rends le même élément que la chaîne, cela fonctionne.IE7 - Styling Javascript generated Element
sur mon javascript:
var style = document.createElement('link');
style.setAttribute('type','text/css');
style.setAttribute('rel', 'stylesheet');
style.setAttribute('href', url('assets/default.css'));
document.getElementsByTagName('head')[0].appendChild(style);
cela va créer la balise de script que je veux intégrer dans la page, qui contient:
.sample{
background: red;
}
puis pour la page J'ajoute une .sample
portée au corps:
var sample = document.createElement('span');
sample.setAttribute('class','sample');
sample.innerHTML = 'hello there';
document.getElementsByTagName('body')[0].appendChild(sample);
Lors du rendu sur IE8/FF/Safari/Chr ome, etc il rend assez bien avec le fond rouge, étonnamment sur IE7 il n'affiche pas le fond rouge. Cela fonctionne si je convertis l'élément sample
en une chaîne, puis l'ajoute au corps, mais j'ai perdu toutes les références à cet élément, ce qui n'est pas bon. Donc, la question est: Comment puis-je appliquer correctement les styles aux éléments javascript?
merci à l'avance
Bien que 'setAttribute' semble fonctionner pour vous lors de l'ajout de la feuille de style, ce n'est probablement pas le cas ... –
Paul, étonnamment, ça a marché! il semble qu'il y ait un problème avec le mot-clé 'class' en tant qu'attribut. Merci beaucoup – zanona
+1. * setAttribute() * est mappé de façon incorrecte aux noms de propriété dans IE7 et inférieur, donc il se brise pour des attributs tels que * class *, * pour *, * onload *, * onclick *, etc. –