jspit
Lounge-Member
Hi,
ich möchte gerne per JS prüfen, ob bestimmte Eigenschaften wie "background" vom Browser akzeptiert werden und auch Eigenschaften in Verbindung mit bestimmten Werten, z.B. "font-size: 1.125rem;". font-size wird mit Sicherheit von allen Browsern erkannt, nicht aber rem als Dimension.
Nun gibt es zahlreiche CSS-Checker, ich möchte dies aber selbst ermitteln.
Hab zugegeben die Suche im Web relativ schnell aufgegeben und versucht eine eigene Lösung zu erstellen.
Als Resultat kam diese relativ überschaubare Funktion raus:
Zum Testen hab ich hier mal ein Schnellschuss zum spielen hochgeladen.
Mein Anliegen:
- gibt es grundsätzliche Bedenken?
- kann die Funktion noch optimiert werden?
LG jspit
Edit: Code verbessert 09.12.2015, Dank an Korbinian
ich möchte gerne per JS prüfen, ob bestimmte Eigenschaften wie "background" vom Browser akzeptiert werden und auch Eigenschaften in Verbindung mit bestimmten Werten, z.B. "font-size: 1.125rem;". font-size wird mit Sicherheit von allen Browsern erkannt, nicht aber rem als Dimension.
Nun gibt es zahlreiche CSS-Checker, ich möchte dies aber selbst ermitteln.
Hab zugegeben die Suche im Web relativ schnell aufgegeben und versucht eine eigene Lösung zu erstellen.
Als Resultat kam diese relativ überschaubare Funktion raus:
Code:
function isCssPropertySupported(propVal){
if(document){
propVal = propVal.replace(/;.*$/,"");
if(propVal == "") return false;
var style = document.createElement("div").style;
style.cssText=propVal;
propVal = propVal.split(":");
var prop = propVal[0]
.replace(/^\s+|\s+$/g, '')
.toLowerCase()
.replace(/\-./g, function(v) {return v.substring(1,2).toUpperCase(); });
var jsVal = style[prop];
if(typeof(jsVal) === "undefined") return false;
return propVal[1] ? ((jsVal+"").length > 0) : true;
}
return false;
}
Zum Testen hab ich hier mal ein Schnellschuss zum spielen hochgeladen.
Mein Anliegen:
- gibt es grundsätzliche Bedenken?
- kann die Funktion noch optimiert werden?
LG jspit
Edit: Code verbessert 09.12.2015, Dank an Korbinian
Zuletzt bearbeitet: