我想测试CustomEvent构造函数是否受支持.
var ev;
if (/* CustomEvent constructor supported? */) {
ev = new CustomEvent('splat');
} else {
ev = document.createEvent('Event');
ev.initEvent('splat');
}
this.dispatchEvent(ev);
Run Code Online (Sandbox Code Playgroud)
我没有任何运行IE的机器来测试它.它是否会抛出错误,因此我可以使用try/catch,还是需要执行其他操作?那些旧的非IE浏览器怎么样?
Jel*_*alt 15
以下应该可以工作,即使在IE6上,我已经在使用IE6的旧XP机器上进行了测试.
if (typeof CustomEvent === 'function') {
ev = new CustomEvent('splat');
}
Run Code Online (Sandbox Code Playgroud)
MDN 文档指出它是 IE9 及以上版本。
像这样的检查可能就足够了:
if (window["CustomEvent"] === undefined) {
// Do stuff to add custom event class
}
Run Code Online (Sandbox Code Playgroud)
抱歉,jsfiddle 不支持 IE8。