栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

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

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

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

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

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

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
循环调用,则事情会变得更加困难。

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



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/427398.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号