我想檢查用戶的瀏覽器是否支持CSS屬性pointer-events
(see documentation)。檢查JS是否支持CSS屬性?
目前,例如,它不受Opera支持,我相信一些版本的IE。
我想在JavaScript中運行檢查並顯示適當的HTML位,具體取決於它是否受支持。
有沒有比檢查用戶代理字符串更好的方法嗎?
我想檢查用戶的瀏覽器是否支持CSS屬性pointer-events
(see documentation)。檢查JS是否支持CSS屬性?
目前,例如,它不受Opera支持,我相信一些版本的IE。
我想在JavaScript中運行檢查並顯示適當的HTML位,具體取決於它是否受支持。
有沒有比檢查用戶代理字符串更好的方法嗎?
我覺得
if ("pointer-events" in document.body.style)
或
if ("pointerEvents" in document.body.style)
應在SVG內容的情況下足夠了。
非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
}
太棒了!感謝張貼這! –
@SerjSagan它現在也包含在Modernizr非核心檢測中。如果您想使用Modernizr,您可以訪問http://modernizr.com/download/並在非核心檢測中激活css-pointerevents。 – ausi
通常你會檢查用戶代理是什麼,並從中知道什麼是或不支持。 – Endophage
@Endophage:通常情況下,你不這樣做。 [功能檢測](http://api.jquery.com/jQuery.support/)是優越的方法。儘管在「指針事件」的情況下,沒有可靠的測試。 – thirtydot
@thirtydot特徵檢測是好的,如果只有你想做的一些有趣的事情。如果您有很多功能需要檢測,請在Modernizer中說出所有內容,但效率不高。 – Endophage