我有以下JavaScript代码,导致“CustomEvent不是构造函数”错误消息。
if (typeof CustomEvent === 'undefined') {
CustomEvent = function(type, eventInitDict) {
var event = document.createEvent('CustomEvent');
event.initCustomEvent(type, eventInitDict['bubbles'], eventInitDict['cancelable'], eventInitDict['detail']);
return event;
};
}
window.onload = function (){
document.dispatchEvent(new CustomEvent("beforeStartPage", {}));
PreInitialize();
if(!IsUnderIpad() || IsIOSPopup()){
startpage();
}
if(!IsUnderIpad()){
testpage();
}
}
我的猜测是,阻止页面显示的错误(仅限Firefox和iPad mini Safari)是由声明CustomEvent函数的方式引起的。 有没有人遇到过这个问题?你能指出我如何解决这个问题的正确方向吗?我很感激。
非常感谢
答案 0 :(得分:0)
根据CustomEvent的CanIUse
1当window.CustomEvent对象存在时,它不能被称为a 构造函数。您必须使用e =而不是新的CustomEvent(...) document.createEvent('CustomEvent')然后是e.initCustomEvent(...)
此外,MDN document for initCustomEvent似乎表示这适用于等于或低于Firefox 6的版本。