检查JS是否支持CSS属性?

时间:2011-08-31 21:23:14

标签: javascript css

我想检查用户浏览器是否支持CSS属性pointer-eventssee documentation)。

目前,例如,Opera不支持它,我相信IE的某些版本。

我想在JavaScript中运行检查,并根据是否支持HTML显示适当的HTML。

有没有比检查用户代理字符串更好的方法呢?

3 个答案:

答案 0 :(得分:6)

对于非SVG内容,此脚本应该有效:
https://github.com/ausi/Feature-detection-technique-for-pointer-events

您也可以在没有Modernizr的情况下使用它:

var pointerEventsSupported = (function(){
    var element = document.createElement('x'),
        documentElement = document.documentElement,
        getComputedStyle = window.getComputedStyle,
        supports;
    if(!('pointerEvents' in element.style)){
        return false;
    }
    element.style.pointerEvents = 'auto';
    element.style.pointerEvents = 'x';
    documentElement.appendChild(element);
    supports = getComputedStyle && 
        getComputedStyle(element, '').pointerEvents === 'auto';
    documentElement.removeChild(element);
    return !!supports;
})();
if(pointerEventsSupported){
    // do something
}

答案 1 :(得分:3)

我认为

if ("pointer-events" in document.body.style)

if ("pointerEvents" in document.body.style)
对于SVG内容,

应该足够了。

答案 2 :(得分:2)

以下在IE 9和Firefox中评估为true:

if ('pointerEvents' in document.documentElement.style)