0
我正在向FB發送FB.login請求。但FB沒有定義,而JavaScript SDK仍在加載核心JavaScript資源。JavaScript與Facebook JavaScript SDK的遞歸錯誤
於是,我把支票拿到FB變量
function check_FB_variable(){
if(typeof FB=='undefined'){
check_FB_variable();
}else{}
}
check_FB_variable();
但是這種做法給了我太多的遞歸錯誤。
於是,我把這個代碼
function check_FB_variable(){
if(typeof FB=='undefined'){
setTimeout(check_FB_variable,600);
}else{}
}
check_FB_variable();
但在這種方法中,前超時功能撥打電話功能向下移動,並給出錯誤 沒有定義的FB.login。
請幫忙。
你已經使用類似的方法,像我用setTimeout,設置timeInterval將調用函數200ms,但在此之前的代碼將執行。我只想讓代碼停在那裏。當FB設置時,我應該繼續下一行。 – lokeshjain2008 2013-05-08 10:44:44
的確,功能是一樣的,但如果調用遞歸需要很長時間,則可以通過某些瀏覽器將其檢測爲錯誤腳本。 我有很多使用IE的經驗。 SetInterval曾經工作,但正如我指出的,我沒有測試過。 至於另一個,我已經在一個項目中使用它,它確實工作。 然而,我有一個腳本將我的所有javascripts合併到一個文件中,然後再渲染我的項目,所以這可能是問題所在? – 2013-05-08 13:37:01
是的,您正確地調用遞歸在這種情況下不是一個好習慣。無論如何,我把我所有的代碼放在「check_FB_variable」函數中,所以它爲我解決了這個問題。我認爲如果傳遞一個回調函數將會很好。希望有人想出更好的解決方案。 – lokeshjain2008 2013-05-08 17:40:31