2013-01-16 3 views
0

WP를 사용 중이며 Thickbox를 사용하여 사용자 정의 페이지의 백엔드에서 이미지를 업로드합니다.Thickbox가 열려 있는지 확인하십시오.

JS가 Thickbox가 열려 있는지 확인하는 방법이 있습니까?

onbeforeunload 이벤트가 있기 때문에이를 확인해야합니다 (특정 상황에서 사용자가 페이지를 떠날 때 경고를 표시하기 위해). 그러나 분명히 사용자가 두꺼운 상자 페이지 사이를 탐색 할 때 경고를 표시하지 않습니다. . 감사.

코드 나는 현재 사용 -

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

I 그대와 같지만 슬프게도 일하지 않습니다. 오류가 없으며 Thickbox가 열려 있어도'false'를 반환합니다. '# TB_window'는이 시점에 존재합니다. 그래서 무슨 일이 일어나고 있는지 확신 할 수 없습니다. –

+0

매우 이상합니다. 코드는 원칙적으로 명확하게 작동합니다. http://jsfiddle.net/nnFtu/ – BenM

+0

이 대체 솔루션을 시도하십시오 ... – BenM