我想做这样的事情:
/*do something*/
var returnValue = /*open a popup window*/
/*do something with return value*/
我发现showModalDialog
可以使这项工作成功,这里是jsfiddle example:
$("#test").click(function() {
var w = window.showModalDialog("about:blank",window , "");
alert("popup closed!");
});
但遗憾的是iPad上的safari不支持showModalDialog
。我能想象的唯一方法是:
window.callback = /*callback function after the popup closed*/
/*open a popup window*/
子窗口中的
window.onbeforeunload = function() {
window.opener.callback.call()
}
但是使用回调会使代码难以阅读。有没有更好的方法暂停javascript直到弹出窗口关闭?
非常感谢任何建议。
答案 0 :(得分:0)
我可以看到你使用jQuery。如果您也允许使用jQueryUI,则可以使用jqueryui对话框小部件:
JS
$(function() {
$( "#dialog" ).dialog({
autoOpen:false,
close: function() {alert('window closed')} //your "on close" logic here
});
$( "#test" ).click(function() {
$( "#dialog" ).dialog( "open" );
});
});
HTML
<div id="dialog" title="My Dialog">
<p>my content </p>
</div>
<button id="test">open blocking popup</button>