2013-09-30 23 views
2

如何根據條件打開打開的彈出窗口。如何在jquery中關閉彈出窗口

它看起來很奇怪,但我有要求基於一些條件,如果它變成真實的彈出應該會自動關閉,該怎麼做?

我已經返回.dialog("close")document.ready事件,但它不起作用。任何想法?

UPDATE

我發現問題其實是有彈出窗口關閉,但在完成它再次打開ready事件後再次。任何幫助?

+0

評估條件的代碼是在彈出窗口還是在父窗口中? –

+0

@ThierryJ。它在彈出.. – commit

+0

+1 >>您的更新,雖然是無稽之談的句子,導致我解決了我的錯誤:) –

回答

0
if (condition){  
    $('dialog id').dialog('close');  
} 
+0

它不工作 – commit

0

這應該做在彈出窗口的工作:

<script> 
    $(function() { 
     if (condition) { 
      window.close(); 
     } 
    }); 
</script> 
+2

男人我不想關閉窗口,我想關閉jquery對話框。 – commit

2

這是一個老帖子,但櫃面別人運行到這個問題,我也有類似的問題,用一個jQuery彈出窗口,甚至不與

$("#popup").dialog('close');

的溶液,適於從一個同事的代碼關閉,是對腳本秒的頂部的控制變量並在打開彈出窗口時將其設置爲1,並在需要關閉時將其重置爲0。此外,我從頁面加載(仍然在JavaScript)的HTML刪除彈出這樣的:

<script> 
<code> 
    var $l = jQuery.noConflict(); 
    var cntDialog = 0; 
</code> 

function pageLoad(sender,args) { 
    $l(function() { 
    if (cntDialog == 0) { 
     RemoveDialog(); 
    }); 
    } 

function initializeDialog(){ 
    $l("#popup").dialog({ 
    ... 
    close: (function (sender,event) { 
    RemoveDialog(); 
    }) 
});} 

function RemoveDialog() { 
    cntDialog = 0; 
    $l("#popup").remove(); 
} 
</script> 

希望它可以幫助

0

您必須添加服務器端腳本一些標籤,你必須設置事件監聽器在客戶端關閉彈出關閉。

意味着你必須設置是這樣的:

parent.postMessage("CLOSE","*"); 

服務器上。

,並設置監聽器客戶端,如:

var eventMethod = window.addEventListener ? "addEventListener" : "attachEvent"; 
var eventer = window[eventMethod]; 
var messageEvent = eventMethod == "attachEvent" ? "onmessage" : "message"; 

//聽消息從子窗口

eventer(messageEvent,function(e) { 
    var key = e.message ? "message" : "data"; 
     var data = e[key]; 
    },false); 

我沒有時間進行檢查。希望這對你有所幫助。

或者我經歷以下網址:

https://developer.mozilla.org/en-US/docs/Web/API/Window.postMessage

http://nyamsprod.com/blog/2012/introduction-to-window-postmessage/

http://benalman.com/code/projects/jquery-postmessage/examples/iframe/

我給出的代碼是從網址:

Html5 - Cross Browser Iframe postmessage - child to parent?

您可以在偵聽器中添加dilogue close代碼。

感謝

1

一個簡單的解決方案可能是$(「#對話密BTN」)。觸發器(「點擊」),您指向對話框關閉按鈕。

0

$('.my-modal').hide()將關閉該活動模態。