2014-03-19 66 views
1

如何使用JavaScript或jQuery在一段時間後關閉模式對話框,或者在session過期時關閉模式對話框?如何從父窗口關閉模態對話框?

對話框中使用下面的代碼打開:

var result = window.showModalDialog("test.aspx" ...); 

當計數器到期這樣的對話,必須關閉:

function Discount() { 
    leftSeconds = leftSeconds - 1; 
    try { document.getElementById('tbLeft').value = leftSeconds; } catch (ex) { } 
    if (leftSeconds <= 5) { 
      clearTimeout(t); 
      // code for closing modal dialog(s) 

    } else { 
      t = setTimeout("Discount()", 1000); 
    } 
} 

模態對話框可以由自己是封閉的,但它不是在溶液中我案件。

+0

提供HTML請莫代爾 –

回答

1

雖然模態對話框打開時,主頁上的JavaScript停止執行,因爲它在等待一個返回值(即使你可能不想回到一個,或者用它返回什麼做任何事情)。

你可以用這個小例子檢查。當您單擊按鈕,打開頁面,則定時器停止更新。當您關閉該頁面,將恢復執行:

<!DOCTYPE html> 
<html> 
<head> 
    <script> 
     var t = 0; 
     function count() { 
      document.getElementById('div').innerHTML = ++t; 
     } 
     var timer = setInterval(count, 1000); 
    </script> 
</head> 
<body> 
    <div id='div'></div> 
    <button onclick="window.showModalDialog('http://www.google.es');">Open window</button> 
</body> 
</html> 

所以,如果你想自動關閉窗口,則需要從新文檔本身做到這一點。我的建議?實現在window.load事件的模式頁的計時器,因此它可以在需要的時間後關閉本身。

window.onload = function() { 
    setTimeout(function() { window.close(); }, 60000); //close window after 1 minute. 
};