我想在javascript中创建一个模态弹出窗口。
但我的要求是每当弹出窗口打开时,它将停止执行下一个javascript行,直到它关闭。
例如。
var bool = false;
DisplayModal("Show Message");
bool = true;
alert("alerted only after closing the pop up : bool = true");
bool = false;
所以直到我关闭"Show Message"
bool的模态弹出窗口才不会是真的。当我关闭弹出窗口时,剩余的脚本将在DisplayModal
...
与alert
类似,但我不想覆盖alert
..
我需要一些帮助,提前谢谢......
修改:
尝试解释一下......
我希望在DisplayModal
调用时停止执行
停止执行
然后弹出显示
弹出窗口从下一行继续关闭(表示:bool = true; ...
)
答案 0 :(得分:2)
如果要自定义对话框的外观,可以使用jQuery的对话框小部件。它支持事件。我举了一个简单的例子:http://jsfiddle.net/5CBdm/
您可以将事件处理程序附加到对话框的close事件,并将其余代码放在事件处理程序中。
所需的HTML:
<div id="dialog-modal" title="Modal dialog">
<p>Message</p>
</div>
和相应的Javascript:
$("#dialog-modal").dialog({
height: 140,
modal: true,
close: function (event, ui) {
alert("Executed when the dialog is closed.");
}
});
对话框的链接:
答案 1 :(得分:1)
您可以使用jQuery插件。例如http://dimsemenov.com/plugins/magnific-popup/
或者你可以自己制作(在jsfiddle上试试:http://jsfiddle.net/T2Vn3/):
<div class="overlay">
<div class="alert">
This is alert!
<br/>
<button>OK</button>
</div>
</div>
<button class="forAlert">Click me!</button>
JS:
document.querySelector('.alert button').addEventListener('click', function () {
document.querySelector('.overlay').style.display = 'none';
}, false);
document.querySelector('.forAlert').addEventListener('click', function () {
document.querySelector('.overlay').style.display = 'block';
});
答案 2 :(得分:0)
听起来像是confirm
(function() {
var result = confirm("I'm Happy?");
alert(result ? "Yes, I'm happy" : "No, I'm not happy");
}());
确认将阻止当前执行的线程,直到返回结果
答案 3 :(得分:0)
alert,prompt,confirm和XMLHTTPRequest是JavaScript中唯一的同步函数。你必须使用事件和回调。
如果您希望用户在关闭弹出窗口之前无法执行任何操作,则可以使透明div恢复所有页面(弹出窗口除外...)。