Improved `supported` function
JavaScript
var supported = (function()
{
var div = document.createElement('div'),
vendors = 'Khtml Ms O Moz Webkit'.split(' '),
len = vendors.length;
return function(prop)
{
prop = prop.replace(/-[a-z]/g, function (val) { return val.toUpperCase(); }).replace(/-/g, '');
if( prop in div.style ) return 1;
prop = prop.replace(/^[a-z]/, function(val) { return val.toUpperCase(); });
while(len--)
{
if ( vendors[len] + prop in div.style )
{
return 2;
}
}
return false;
};
})();
// TESTING
function log(s) {
$('body').append('<p>'+s+'</p>');
};
$.each([ 'cursor', 'border-radius', 'box-sizing' ], function (i, e) {
var s = '<strong>'+e+'</strong>: ';
switch (supported(e)) {
case false: s += '✗ no'; break;
case 1: s += '✓ yes'; break;
case 2: s += '✓ yes, proprietary'; break;
}
log(s);
});