要解决的JavaScript难题:window.confirm = divConfirm(strMessage)

要解决的JavaScript难题:window.confirm = divConfirm(strMessage),第1张

要解决的JavaScript难题:window.confirm = divConfirm(strMessage)

现在的问题是,这不能像我们使用alert()一样帮助我更改整个站点的确认对话框。

没错 无法在本机Javascript中重现alert / confirm /
prompt函数的同步性质。有一种非标准的方法

showModalDialog
可以使用单独的d出式文档来执行此 *** 作,但是并非所有浏览器都支持该方法,通常认为这是非常不可取的。

因此,插件替换策略无法正常工作。您将不得不在脚本的其余部分中更改调用这些方法的每个位置。

通常的模式是使用内联匿名函数执行此 *** 作,以使用闭包(例如)保留局部变量。更换:

function buttonclick() {    var id= this.id;    if (confirm('Are you sure you want to frob '+id+'?'))        frob(id);    wipe(id);}

与:

function buttonclick() {    var id= this.id;    myConfirm('Are you sure you want to frob '+id+'?', function(/confirm/ied) {        if (/confirm/ied) frob(id);        wipe(id);    });}

如果需要

this
保留,则需要查看另一个嵌套的闭包或function.bind来完成。如果您要
/confirm/i
循环调用,则事情会变得更加困难。

显然,您还必须确保在确认框打开时,关键的全局状态不会改变。通常,通过将页面的其余部分显示为灰色以使点击无法通过,可以将这种风险降到最低。但是,如果超时,它们仍然可以触发。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5089159.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-16
下一篇2022-11-16

发表评论

登录后才能评论

评论列表(0条)

    保存