如何确定浏览器是否支持事件对象的属性?

时间:2013-07-01 05:14:16

标签: javascript custom-event

某些支持触控功能的浏览器(例如Mobile Safari)在scale对象上可以使用rotationevent属性来处理touchmove等事件。

我可以像{...}那样检测对scale属性的支持。

document.body.addEventListener("touchmove", function(event) {
    var supportsScaleProperty = !!event.scale;
});

但是,有没有办法检测它而不必绑定监听器然后在回调中查找属性?

例如,如果这有用吗?

var supportsScaleProperty = !!(new CustomEvent("TouchEvents")).scale;

我尝试查看createEvent(),但已弃用。我查看了new CustomEvent(),但不确定哪个字符串用于触摸事件。

2 个答案:

答案 0 :(得分:3)

您可以使用Event constructor

if ('scale' in new Event("touchmove")) {
    // It has it
}

答案 1 :(得分:0)

这似乎不可能。 TJ's solution没有告诉我属性是否存在(即使在支持它们的设备上也不存在)。

所以,看起来我一直坚持......

document.body.addEventListener("touchmove", function(event) {
    if (event.scale) {
         // ...
    }
});