我创建了一个适用于iOS和所有Android设备的应用程序,除了运行Jellybean的设备。我已经在Nexus 7,Nexus 5和Galaxy Note 3(KitKat)上进行了测试,它运行良好。然而,当我在Galaxy Note 2,Galaxy Note 3和Galaxy S3上尝试使用Jellybean时,我遇到了同样的错误:
Uncaught TypeError: Illegal constructor:82
Uncaught Error: UNSPECIFIED_EVENT_TYPE_ERR: DOM Events Exception 0: 71
在第82行,我有:
var a = new window.Event(trigger);
在第71行我有:
elem.dispatchEvent(a);
此应用程序完全基于Web,没有本机插件。因此,当我在浏览器上打开网页时,一切都在Jellybean手机上运行正常。但是,一旦相同的代码被包装在phonegap中,我就会开始看到错误。为Jellybean创建自定义javascript事件的正确方法是什么?
更新: 我找到了答案。对于软糖,您必须使用此处概述的折旧方法:https://developer.mozilla.org/en-US/docs/Web/API/document.createEvent
// Create the event.
var event = document.createEvent('Event');
// Define that the event name is 'build'.
event.initEvent('build', true, true);
// Listen for the event.
document.addEventListener('build', function (e) {
// e.target matches document from above
}, false);
// target can be any Element or other EventTarget.
document.dispatchEvent(event);