我想检查用户浏览器是否支持CSS属性pointer-events
(see documentation)。
目前,例如,Opera不支持它,我相信IE的某些版本。
我想在JavaScript中运行检查,并根据是否支持HTML显示适当的HTML。
有没有比检查用户代理字符串更好的方法呢?
答案 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)