【问题标题】:NS_ERROR_UNEXPECTED error in Firefox using Dojo使用 Dojo 的 Firefox 中的 NS_ERROR_UNEXPECTED 错误
【发布时间】:2014-10-27 03:08:00
【问题描述】:

我在使用我的 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: 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
    };
}

【问题讨论】:

  • 刚刚添加到 cmets。感谢您的反馈@admdrew

标签: javascript firefox dojo xmlhttprequest


【解决方案1】:

这是一个通用的 FF 错误消息...它通常由计时或竞争条件触发,这可以解释为什么它会通过 dojo/on 出现。也许您尝试使用的目标或事件处理程序正在处理已删除的内容等。如果不知道触发它的事件或没有查看完整的代码示例,则不清楚。

例如,您可能正在尝试在 DOM 可用之前添加事件侦听器,但这只是猜测。或者可能目标节点不存在。

可以使用调试器查看事件参数的值,也可以查看自己的各种事件注册机制等

【讨论】:

  • 感谢您的回复(和领导)。我将尝试更深入地研究任何/所有事件。比如一个奇怪的错误!再次感谢:)
【解决方案2】:

我们在使用实习生 2.0 和单元测试创​​建本机选择框时遇到了类似的问题。

一些库代码(已验证它不是我们自己的)触发了一个 dojo.emit() 导致内部错误。

我们正在尝试更详细地确定问题。如果您发现了什么,也请告诉我们!

【讨论】:

  • 我的问题正是@Dylan 所说的——我的模板中有一个额外的元素我忘记通过 AMD 包含了
【解决方案3】:

我们在同一时间也遇到了同样的异常,

对我们来说,我们将代码
elementReference.destroy() // destroy is a dojo function 替换为 elementReference.domNode.remove() 并解决了我们的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-01
    • 1970-01-01
    • 2015-11-05
    • 2013-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多