IE9中的cssRules [x] .selectorText无法正常工作/未定义

时间:2015-07-20 21:08:56

标签: javascript html css internet-explorer webpack

所以我有一个搜索cssRules的函数,这样我们就可以访问javascript中的样式对象了:

getCSSRule: function(selector) {
    var i, j, sheet;
    if (selector in this.cssCache) {
        return this.cssCache[selector];
    }
    for (i in document.styleSheets) {
        sheet = document.styleSheets[i];
        for (j in sheet.cssRules) {
            if (sheet.cssRules[j].selectorText === selector) {
                this.cssCache[selector] = sheet.cssRules[j];
                return sheet.cssRules[j];
            }
        }
    }
}

在Chrome中,这可以正常使用,但在IE9 selectorText中未定义,我也看到了UNKNOWN_RULE: 0

我在网上发现了here

  

在IE浏览器中,当样式表中插入规则时,直到最新的IE8,它会在解析的输出中产生两个变化:a)将selectorText属性设置为大写字符串' UNKNOWN'如果它是无效的,b)从样式表中读回的表示cssText具有大写名称的属性(如果它们被识别),或者如果解析器不知道则从表示中丢弃它们。

但是,我并不了解问题所在或如何解决问题。 FYI堆栈是React,ES6和webpack,它还处理将scss导入到javascript模块中,这些javascript模块在运行时插入样式标记。

0 个答案:

没有答案