无法使用到的getComputedStyle访问风格的iOS(Unable to access st

2019-09-21 23:44发布

好了,我有这个功能旨在从指定元素返回所需计算的风格。 它工作在我所测试的所有桌面浏览器,但是,它不能在移动Safari工作。 如果我登录的电话的getComputedStyle回控制台是一个[对象CCStyleDeclaration]这是伟大的,但是当我登录的getPropertyValue把它简单地返回而不是正确的风格“空”。 任何帮助将是非常美妙的。 谢谢!

Utils.getStyle = function(element, style){
    var strValue = "";
     if(document.defaultView && document.defaultView.getComputedStyle){
        strValue = document.defaultView.getComputedStyle(element, "").getPropertyValue(style);
     }else if(element.currentStyle){
        style = style.replace(/\-(\w)/g, function (strMatch, p1){
            return p1.toUpperCase();
        });
        strValue = element.currentStyle[style];
    };
    return strValue;
};

Answer 1:

在我关于意见的情况下window.getComputedStyle VS document.defaultView.getComputedStyle有任何物质,我在自己的图书馆使用此功能:

getComputedStyle : function(element){
    var styles = element.currentStyle || getComputedStyle(element, null);
    return styles;
}

适合您的函数签名:

Utils.getStyle = function(element, style){
    var styles = element.currentStyle || getComputedStyle(element, null);

    // Prevent a 'Cannot read property X of null' error 
    if(styles != null){
        return styles[style];
    } else {
        return null;
    }
}

我无法在iOS中不幸测试这一点,但我想知道,如果它的工作原理。



文章来源: Unable to access style with getComputedStyle in iOS