HTML中confirm替换,Javascript直接Confirm()函数替换

本文探讨了如何替换默认的Javascript confirm()函数,实现自定义按钮而非仅限Yes/Cancel选项的方法。文章介绍了非事件驱动的解决方案,并提供了一种通过构造异步代码来实现对话框自定义的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我想替换Javascript Confirm()函数以允许自定义按钮,而不是Yes / Cancel.我尝试搜索,但是所有解决方案都是事件驱动的,例如jquery对话框(其中代码不等待响应,而是事件驱动的).有谁知道非事件驱动的解决方案.它必须在Safari和IE中都可以使用(因此没有vbscript).

这是系统许多部分的示例代码.这是旧的代码,在设计时并未考虑事件驱动的窗口.我试图避免重写.

**

// Wait for users response

if (result>2000) {

if (confirm("Are you sure this is right?")){

... do stuff

}

}

... continue with other stuff

... lots of other code.

if (confirm("Did you double check your numbers?")){

... do more stuff

} else {

... do something

}

**

解决方法:

就像其他人说的那样,这是不可能的.确认是一个阻止功能-在用户关闭对话框之前不会再执行任何脚本-并且您无法使用其他Javascript方法来模拟该脚本.

更好的解决方案是为异步执行构造代码.这几乎总是一个更好的主意-首先,它使您可以决定对话框的外观,有哪些按钮等等.其次,它不会阻止用户.他们可能需要仔细检查在另一个选项卡或页面上的其他位置打开的重要信息.确认之后,他们必须先回答您的问题,才能到达这些地方中的任何一个.

这是代码的摘要.这里有很多空白,但这可能使您走上正轨:

if (result>2000) {

displayConfirm("Are you sure this is right?", {

"Yes": function () {

// ... do stuff

},

"No": function () {

// do.. nothing? up to you.

}

}

}

您将在此处看到定义了两个函数,但实际上没有一个函数被执行. displayConfirm函数必须构造一个对话框(以任何方式),然后创建按钮,并将这些函数用作单击处理程序(或至少从单击处理程序调用它们).

标签:confirm,javascript

来源: https://codeday.me/bug/20191202/2085862.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值