gpt4 book ai didi

javascript - 自定义警报的返回值

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

<分区>

Possible Duplicate:
How to create TRULY modal alerts/confirms in Javascript?

TL;DR: 我已经覆盖默认值 alert()使用基于自定义 HTML 的功能。我希望新对话仍然阻止执行,并让我的对话中的按钮返回 truefalse从调用 alert()在逻辑中使用(并继续执行)。


我正在尝试实现一个自定义警报框,它用具有相同(或相似)功能的精美主题框替换默认的浏览器警报。

我读过 this问题,我正在使用 this answer 中给出的解决方案(对同一个问题)。我现在想要做的是让我的覆盖警报返回一个真值或假值以用于 if()语句,取决于是否OKCancel被点击:

if(alert('Confirm?') {
// Do stuff
}

但是,由于有自定义 HTML 而不是普通警报,我不能这样做有两个原因:

  • 我无法从替换对话框中的按钮返回值(点击事件与 $.on() 绑定(bind)),因为我不知道如何返回。
  • 据我所知,我无法使用此警报阻止程序流。

我绑定(bind)了$.on()事件到 CancelOK隐藏框的替换对话框中的按钮。这些工作正常,但我现在遇到的问题是单击按钮时返回一个值,这样执行将停止,直到用户采取操作。

HTML:

<div class="alert background"></div>

<div class="alert box">
<div class="message"></div>

<hr>

<div class="buttons">
<input type="button" name="cancel" value="Cancel">
<input type="button" name="confirm" value="OK">
</div>
</div>

当前的 JavaScript:(几乎是我链接问题中答案的副本)

(function () {
nalert = window.alert;

Type = {
native: 'native',
custom: 'custom'
};
})();

(function (proxy) {
proxy.alert = function () {
var message = (!arguments[0]) ? 'null' : arguments[0];
var type = (!arguments[1]) ? '' : arguments[1];

if (type && type == 'native') {
nalert(message);
} else {
// Custom alert box code
console.log(message);
}
};
})(this);

理想情况下,我希望能够将这样的内容放入 // Custom alert box code 中部分:

$('.alert.box input[name="confirm"]').on('click', function() {
// Hide dialogue box - I can do this already

// *** Return `true` or other truthy value from
// alert for use in `if()` statements
});

所以当OKCancel单击按钮,它会删除自定义警告框并从对 alert() 的调用中返回真值或假值。我已经可以使用 $.fadeOut() 删除警报和 $.remove() , 这很容易。不知道如何获取按钮单击事件以获取 alert() (重写)返回一些东西。

我已经尽量说清楚了,但我可能漏掉了一些东西。如果我有,请告诉我。

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