为什么事件instanceof TouchEvent在Firefox中抛出异常

时间:2014-10-21 02:13:09

标签: javascript firefox

我正在尝试运行一些通过firefox运行chrome的代码,但我得到了一个例外。

document.onmousedown = function(e) { 
    try {
        if (e instanceof TouchEvent) {
            alert('haa');
        } 
    }
    catch (ex) {
        alert('hoo');
    }
};

我应该使用什么? TouchEvent位于mozilla文档中......

jsFiddle here

1 个答案:

答案 0 :(得分:2)

Firefox不支持TouchEvent。但是你可以通过MouseEvent.mozInputSource来确定mousedown的来源。在MDN上定义了一些不同的常量。

我实际上无法对此进行测试,但我认为这样的事情会起作用:

document.addEventListener("mousedown", function(e) { 
    if ("mozInputSource" in e) {
        var source = e.mozInputSource;
        if (source == MouseEvent.MOZ_SOURCE_PEN ||
            source == MouseEvent.MOZ_SOURCE_TOUCH) {
            alert("probably generated by touch");
        }
    }
});