2013-01-16 178 views
0

我正在使用WP,我使用Thickbox在自定義頁面的後端上載圖像。檢查Thickbox是否打開

有沒有一種方法讓JS檢查Thickbox是否打開?

我需要檢查這個,因爲我有一個onbeforeunload事件(在用戶離開頁面時顯示警告,在某些情況下),但顯然,當用戶只是在Thickbox頁面之間導航時,不需要顯示警告。謝謝。

代碼我目前使用的 -

var bol_submit_clicked = false; 
$('input[name="Submit"]').click(function(){ 
    bol_submit_clicked = true; 
}); 

window.onbeforeunload = function closeEditorWarning(){ 

    var bol_option_changed = false; 

    /** Check to see if the settings warning is displayed */ 
    if($('#unsaved-settings').css('display') !== 'none'){ 
     bol_option_changed = true; 
    } 

    /** Display a warning if the user is trying to leave the page with unsaved settings */ 
    if(bol_option_changed === true && bol_submit_clicked === false){ 
     return ''; 
    } 


}; 

回答

2

有在ThickBox的沒有內在的功能來檢查,但看代碼,你就應該能夠檢查的存在和知名度#TB_window

var thickbox_shown = ($('#TB_window').is(':visible')) ? true : false; 

或者,嘗試計數#TB_load長度:

var thickbox_shown = ($('#TB_load').length > 0) ? true : false;\ 
+0

我像你一樣,但可悲的是不工作。沒有錯誤,即使Thickbox打開,它也只是返回false。 '#TB_window'此時存在,所以不知道發生了什麼... –

+0

很奇怪。該代碼絕對符合原則:http://jsfiddle.net/nnFtu/ – BenM

+0

試試這個備用解決方案... – BenM