Die CSSRule
DOM interface enthält Konstanten für jeden Typ von CSS-Regel. Der Typ einer Regel kann mit Anweisungen wieWarum ist CSSRule leer, wenn es von einem Firefox-Add-On gelesen wird?
getestet werden. Ich baue ein Firefox Add-on mit dem SDK. Wenn es aus der Inhaltsskriptdatei dieses Add-ons gelesen wird, ist CSSRule
vorhanden, aber leer.
console.log("CSSRule is " + CSSRule);
for(var key in CSSRule) {
console.log('key: ' + key + '\n' + 'value: ' + CSSRule[key]);
}
console.log("CSSRule.STYLE_RULE is " + CSSRule.STYLE_RULE);
Ausgänge
CSSRule is [object CSSRule]
CSSRule.STYLE_RULE is undefined
Wenn von einem script
innerhalb einer Seite die gleiche Ausführung, oder von der Konsole den folgenden, ist der Ausgang als erwarte ich, mit CSSRule.STYLE_RULE
Satz 1
.
Wenn man von einem pageMod contentScript
anstelle einer externen Inhaltsskriptdatei ausgeführt wird, ist CSSRule
{}
statt.
Warten Sie, bis die Seite geladen wurde, und verwenden Sie window.CSSRule
anstelle von CSSRule
, ändern Sie das Verhalten nicht.
Ich habe dies auf Firefox 45.0.1 (aktuelle Version) und jede Nacht (48.01a 2016.04.10) von heute getestet, auf OS X.
Warum ist CSSRule
leer? Wie kann ich auf diese Konstanten zugreifen, außer sie manuell auf die richtigen Werte zu setzen?
welche FF-Version? Hast du es jeden Abend versucht? – the8472
@ the8472 45.0.1, das gleiche Verhalten bei Nacht. Habe die Frage bearbeitet. – Leopold
Wenn es funktioniert, führen Sie einfach Ihren Code als Skript auf der Seite statt direkt von der Erweiterung aus. – dandavis