2

わかりました。この関数は、指定された要素から目的の計算されたスタイルを返すように設計されています。テストしたすべてのデスクトップ ブラウザーで動作しますが、モバイル サファリでは動作しません。getComputedStyle 呼び出しをコンソールに記録すると、それは [object CCStyleDeclaration] になりますが、getPropertyValue 呼び出しを記録すると、正しいスタイルではなく単に「null」が返されます。どんな助けでも素晴らしいでしょう。ありがとう!

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;
};
4

1 に答える 1

1

window.getComputedStylevsに関する私のコメントに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 でこれをテストすることはできませんが、動作するかどうか知りたいです。

于 2012-09-01T02:58:25.350 に答える