2014-02-28 34 views
-1

我在以下方式在我的頁面上使用了多重Ext.onready函數。ExtJs多重onReady執行

的Page1.jsp具有以下結構 -

<body> 
<%@include file="/jsp/layout/page2.jsp" %> 
<div id="restOfBodyContent"> 
<script type="text/javascript"> 
Ext.onReady(function(){ 
    var obj=null; 
    obj.split(':');//on this line error will be thrown 

}); 
</script> 
</body> 

Page2.jsp具有以下結構 -

<body> 
<div id="bodyContent"> 
<script type="text/javascript"> 
Ext.onReady(function(){ 
    //some valid functionality 
}); 
</script> 
</body> 

當我執行頁然後錯誤是Ext.onReady本內扔在上述因爲第2頁上的Ext.onReady未被執行。

有沒有什麼辦法可以確保頁面2中的Ext.onReady存在,即使頁面1的Ext.onReady中有錯誤。

謝謝!

+0

爲什麼不用一個try catch包裝? – rakhi4110

+0

@ 4zh4r會出現什麼樣的錯誤? – leaf

+0

@procrastinator,這就是我在我的答案中提到的。如果他知道錯誤,則需要修正。但是已經說過了,作者應該採取行動。 – rakhi4110

回答

0

當您在腳本中出現錯誤時,我認爲您應該繼續並修復它,以便它正常工作。

但是,如果您無法控制該代碼塊或者您想跳過該錯誤,請嘗試將其包含在try catch中,以便它不影響腳本的其餘部分。

Ext.onReady(function(){ 
    try { 
     var obj=null; 
     obj.split(':');//on this line error will be thrown 
    } catch(e) { 
     console.log('error'); 
    } 
}); 
+0

如果出現錯誤,那麼我會修復它,甚至我有替代方法在try catch塊內寫入方法實現。 但是我想知道是否有某種方式可以讓ExtJs提供某種配置或機制來處理這種情況,即使try try不存在,我們也可以確保執行其他Ext.onReady方法。 –