gpt4 book ai didi

javascript - 使用 jQuery 创建 JS 执行阻塞对话框

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:51:44 25 4
gpt4 key购买 nike

我有一个现有的 Web 应用程序,它使用 window.showmodaldialog() 来显示某些表单,并根据返回值执行其他一些 JavaScript

例如:

var retVal = window.showmodaldialog('...');

if (retVal==XXX)
callXXX();
else
callYYY();

当执行 showModalDialog() 时,它会阻止主窗口上的 JS 执行,直到模式关闭。

我正在尝试用 jQuery 对话框替换这些模态窗口,但问题是一旦 $(...).dialog().open() 被执行,JavaScript 执行不会等待用于关闭对话框。

我知道有一些 jQuery API 允许我配置回调函数,但这对我来说涉及很多更改。无论如何我可以暂停 JavaScript 执行直到对话框关闭(我必须仍然能够从对话框执行脚本)。

最佳答案

不幸的是,没有。您将需要使用某种回调函数。在 JavaScript 中像这样“阻塞”是一个坏主意,因为只有一个执行线程并且 JavaScript 使用事件驱动模型。

你可以做这样的事情来“等待”返回值,但这根本不会“阻止”其他执行:

var myReturn, 
myInterval = setInterval(function () {
if (myReturn != undefined) {
clearInterval(myInterval);
// Rest of processing code here.
}
}, 50);

$('myContainer').dialog(close: function () {
myReturn = 'Dialog Closed';
}).open();

应该避免尝试“阻止”或“暂停”JavaScript 的执行——该语言根本就不是为它设计的。

关于javascript - 使用 jQuery 创建 JS 执行阻塞对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3537771/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com