Ich muss vorhandene globale CSS-Regeln ändern, dann greife ich auf document.styleSheets, meine Regel erhalten und ändern.Firefox und IE kann nicht ändern cssRules
Ich modifiziere den Selektor durch Zugriff auf die selectorText Eigenschaft.
CSS-Code
<style type="text/css">
.class {
color: #230020;
}
</style>
JavaScript-Code
var rule = document.styleSheets[0].cssRules[0]; // obtain the first rule.
/* Chrome, Opera, Safari */
rule.selectorText; // returns ".class"
rule.selectorText = ".another-class";
rule.selectorText; // returns ".another-class", then it works and the rule changed.
Mein Problem ist in allen Versionen von Firefox und Internet Explorer, dass die Eigenschaft selector scheint zu schreibgeschützt.
/* Internet Explorer, Edge, and Firefox */
rule.selectorText; // returns ".class"
rule.selectorText = ".another-class";
rule.selectorText; // returns ".class", It remains as it was.
Wie kann ich es mit Mozilla Firefox, Microsoft Internet Explorer und Edge arbeiten lassen?
Ich habe meine Antwort aktualisiert, um Ihnen zu zeigen, wie Sie die ursprünglichen Stileigenschaften zwischenspeichern können, so dass Sie sie nicht neu schreiben müssen. – skyline3000
Das ist die richtige Antwort, danke. – user123123123
Dies ist nicht korrekt - überprüfen Sie die [spec] (https://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSRule). Der FF-Bug ist immer noch da, obwohl er angeblich mit Vorbehalte im IE funktioniert. Ich habe den MDN-Artikel korrigiert. – Semicolon