我正在尝试为单元测试创建一个触摸事件。阅读完https://developer.mozilla.org/en-US/docs/Web/API/TouchEvent之后,我原以为我可以这样做:
document.createEvent('TouchEvent');
但是我收到了这个错误:
Uncaught DOMException: Failed to execute 'createEvent' on 'Document': The provided event type ('TouchEvent') is invalid.
我看到了Creating and firing touch events on a touch enabled browser?,其中也说明了createEvent()是可行的方法。
我还尝试通过构造函数创建事件,这对于MouseEvent和WheelEvent等事件有效:
new window.TouchEvent()
但是我在这里也遇到了一个错误:
Uncaught TypeError: 非法构造函数
我尝试在Firefox 36中运行,但根据http://caniuse.com/#search=touch,看到以下信息并不感到惊讶:
NotSupportedError: 操作不受支持
运行后
document.createEvent('TouchEvent')
在Firefox中甚至没有window.TouchEvent构造函数,这并不令人意外。
我做错了什么?有任何想法吗?
declare var Touch: { prototype: Touch; new(): Touch; };
。你使用的是哪个版本? - Micha Schwab