Javascript NS\u错误\u使用Dojo的Firefox中出现意外错误
在使用Dojo(v.1.10.0)应用程序时,Firefox中出现了一个奇怪的问题 以下是我在Firefox中看到的错误:Javascript NS\u错误\u使用Dojo的Firefox中出现意外错误,javascript,firefox,dojo,xmlhttprequest,Javascript,Firefox,Dojo,Xmlhttprequest,在使用Dojo(v.1.10.0)应用程序时,Firefox中出现了一个奇怪的问题 以下是我在Firefox中看到的错误: Exception { message: "", result: 2147549183, name: "NS_ERROR_UNEXPECTED", filename: "http://localhost:8888/dojo/on.js", lineNumber: 354, columnNumber
Exception
{ message: "",
result: 2147549183,
name: "NS_ERROR_UNEXPECTED",
filename: "http://localhost:8888/dojo/on.js",
lineNumber: 354,
columnNumber: 0,
inner: null,
data: null
}
""
不幸的是,我不知道在我的应用程序中该如何处理这个问题。谁能给我指出正确的方向吗
在dojo/On的第354行,发生了以下情况:
if(has("dom-addeventlistener")){
// emitter that works with native event handling
on.emit = function(target, type, event){
if(target.dispatchEvent && document.createEvent){
// use the native event emitting mechanism if it is available on the target object
// create a generic event
// we could create branch into the different types of event constructors, but
// that would be a lot of extra code, with little benefit that I can see, seems
// best to use the generic constructor and copy properties over, making it
// easy to have events look like the ones created with specific initializers
var ownerDocument = target.ownerDocument || document;
var nativeEvent = ownerDocument.createEvent("HTMLEvents");
nativeEvent.initEvent(type, !!event.bubbles, !!event.cancelable);
// and copy all our properties over
for(var i in event){
if(!(i in nativeEvent)){
nativeEvent[i] = event[i];
}
}
return target.dispatchEvent(nativeEvent) && nativeEvent; // Line 354
}
return syntheticDispatch.apply(on, arguments); // emit for a non-node
};
}
这是一条通用FF错误消息。。。它通常是由计时或比赛条件触发的,这可以解释为什么它会通过dojo/on显示。可能您尝试使用的目标或事件处理程序正在对已删除的内容执行操作,等等。如果不知道触发它的事件是什么,或者没有看到完整的代码示例,则不清楚 例如,您可能试图在DOM可用之前添加事件侦听器,但这只是猜测。或者目标节点不存在
您可以使用调试器查看事件参数的值,也可以查看各种事件注册机制等。我们在使用intern 2.0和单元测试创建本机选择框时遇到类似问题 一些库代码(已验证不是我们自己的)触发dojo.emit(),从而导致内部错误
我们正试图更详细地确定这个问题。如果你发现了什么,也请告诉我们 我们在同一点上也遇到了同样的异常
对于我们来说,我们将代码
elementReference.destroy()//destroy是一个dojo函数
替换为elementReference.domNode.remove()
,它解决了我们的问题。刚刚添加到注释中。感谢您的反馈@admdrewt感谢您的回复(以及潜在客户)。我会尽量深入了解任何/所有事件。像这样一个奇怪的错误!再次感谢:)我的问题正是@Dylan所说的——我的模板中有一个额外的元素,我忘了通过AMD包含