Comment utiliser CSSStyleSheet.insertRule() correctement?
Je ne peux pas savoir où je vais mal ici :/. Lorsque j'exécute ce code, tout ce que j'obtiens est un élément vide. Je n'arrive pas à obtenir le insertRule méthode de ne rien faire (même pas produire une erreur). Ai-je raté quelque chose?
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
</head>
<body>
<script>
var sheet = (function() {
//Create the <style> tag
var style = document.createElement("style");
//WebKit hack
style.appendChild(document.createTextNode(""));
//Add the <style> element to the page
document.head.appendChild(style);
return style.sheet;
})();
sheet.insertRule("\
#gridContainer {\
width: 100%;\
height: 100%;\
}\
", 0);
</script>
</body>
</html>
- Il semble que ça fonctionne sur Firefox et Chrome.
- J'ai un vide <style></style> tag dans Firefox et Chrome... j'ai édité ma question pour afficher l'intégralité du code, je suis en cours d'exécution. Pas sûr de ce qui va mal...
Vous devez vous connecter pour publier un commentaire.
Il est un peu confus, mais votre code ne fonctionne, il est juste que vous ne pouvez pas voir le insérés les règles dans l'arbre XML retourné.
Pour vérifier que votre code fonctionne, il y a deux tests que vous pouvez faire:
JS:
HTML:
Exécuter l'extrait ci-dessus, et vous pouvez voir que la règle CSS ne s'applique pas. Et le
cssRules
propriété des changements dans la console.Ceci est souvent remarqué lorsque les extensions de navigateur générez des feuilles de style ajouté au DOM, et pendant le débogage, ils apparaissent comme vide les feuilles de style de l'inspecteur.
WebKit hack
, fournir un lien de référence ou quelque choseCette version est basée sur Awal réponse et Totalement Pwn CSS avec Javascript à partir de archive web.
Le id paramètre est utile pour accès aux la feuille de style avec getElementById, et la médias paramètre est facultatif et defauts de "l'écran".
Je suis de retour la de la feuille de style.feuille de, c'est juste ma préférence.
<style>
élément long de l'onu-il... vous devriez vous débarrasser d'eux. seul lemedia
est en quelque sorte précieux pour des situations rares.