我正在開發Windows 8.1的HTML/JS應用程序,並且無法調試附加到頂部NavBar對象的處理程序中正在發生的崩潰當用戶從處理程序所附的頁面導航時。WinJS NavBar事件處理程序在導航到另一頁時崩潰Windows 8.1 HTML5/JS應用程序
功能非常簡單:當用戶登錄到問題的屏幕上時,我使用它的.show()方法自動顯示WinJS Flyout。現在,當用戶調用頂層NavBar對象時,我有一個隱藏Flyout對象的處理程序。我還有另一個處理程序,當NavBar被解散時,顯示Flyout。
當用戶導航到其他頁面時會出現此問題。這裏是我的問題的屏幕代碼:
var appBar = class.that.constructs.NavBar;
ready : function (element, options) {
var self = this;
...
appBar.topControl.onbeforeshow = self.hideFlyout;
appBar.topControl.onbeforehide = self.showFlyout;
$('#flyout').addClass('activated');
$('#flyout')[0].winControl._sticky = true;
$('#flyout')[0].winControl.show();
},
hideFlyout: function() {
$('#flyout').topControl.winControl.hide();
},
showFlyout: function() {
$('#flyout').topControl.winControl.show();
},
unload: function() {
appBar.topControl.onbeforeshow = null;
appBar.topControl.onaftershow = null;
}
正如你所看到的,我刪除卸載後的頁面的事件處理程序,但這似乎並沒有這樣的伎倆。我仍然得到這個崩潰錯誤:
JavaScript runtime error: Unable to get property 'classList' of undefined or null reference
它在showFlyout
處理程序崩潰。有沒有人對如何在導航到新頁面時避免崩潰提出任何建議?
你有沒有試着調試代碼? (進入它?)在崩潰時,看起來像什麼樣的callstack? – WiredPrairie
@WiredPrairie我確實嘗試過。正如我在我的原始文章中所述。該程序在'showFlyout'處理程序的行中崩潰。 callstack指出,在它在該代碼行崩潰之前,它顯示[External Code]。不確定那是什麼意思。 – ariestav
你沒有說明你特別試過的東西。 「調試」是一個非常普遍的術語。你可以加入「演出」功能嗎? – WiredPrairie