2014-09-02 29 views
2

使用我的Dojo(v.1.10.0)應用程序時,我在Firefox中引發了一個奇怪的問題。使用Dojo的Firefox中的NS_ERROR_UNEXPECTED錯誤

這裏是下面的錯誤,我看到在Firefox:

Exception 
    { message: "", 
     result: 2147549183, 
     name: "NS_ERROR_UNEXPECTED", 
     filename: "http://localhost:8888/dojo/on.js", 
     lineNumber: 354, 
     columnNumber: 0, 
     inner: null, 
     data: null 
    } 
    "" 

不幸的是,我不知道哪裏有這種走在我的應用程序。任何人都可以將我指向正確的方向嗎?

在道場的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 
    }; 
} 
+1

剛剛添加到評論。感謝您的反饋@admdrew – streetlight 2014-09-02 19:06:01

回答

2

這是一個通用的FF錯誤信息......它通常是由一個定時或競爭條件觸發,這可以解釋爲什麼它顯示出來通過dojo/on。也許您正在嘗試使用的目標或事件處理程序正在處理已刪除的內容等。不清楚不知道觸發了哪個事件或者沒有看到完整的代碼示例。

例如,也許你想在DOM可用之前添加事件偵聽器,但這只是一個猜測。或者,也許目標節點不存在。

您可以使用調試器來查看事件參數的值,或者你可以看看你的各種事件註冊機制等

+0

感謝您的回覆(和領導)。我會盡力深入探究任何/所有事件。比如一個奇怪的錯誤!再次感謝:) – streetlight 2014-09-03 11:38:19

0

我們有使用實習生2.0和單元測試創​​建本機選擇框類似的問題。

某些庫代碼(驗證它不是我們自己的)會觸發導致內部錯誤的dojo.emit()。

我們試圖更詳細地確定問題。如果您發現某些內容,請讓我們知道!

+0

聽起來不錯 - 感謝評論! – streetlight 2014-09-19 14:55:52

+0

我的問題正是@Dylan說的 - 我的模板中有一個額外的元素,我忘記通過AMD – streetlight 2014-09-19 14:56:23

0

我們也在完全相同點得到相同的異常,

對我們來說,我們取代我們的代碼
elementReference.destroy() // destroy is a dojo functionelementReference.domNode.remove(),它解決了我們的問題。