asp.net – 要解决的JavaScript难题:window.confirm = divConfi
场景是:旧网站已经编写了很多JS代码.如果用户想要将所有警报消息更改为使用JQuery,YUI,Prototype等非常常见的新时代基于Div的警报.
主要有树JS对话框 警惕 要改变它的简单,我们只需编写新的函数,它将显示div弹出窗口并显示消息,然后覆盖window.alert function showDivAlert(strMessage){ 提示 这也很容易编写函数来接受字符串并显示输入值的文本框.现在返回操作基于点击“确定”按钮,这里的生活很简单. function shoDivPromp(strMessage){ 3.确认 现在,上面两个很容易覆盖和修改默认对话框,但确认并不复杂. 解决方法
那是对的.在本机JavaScript中无法重现警报/确认/提示功能的同步特性.有一个非标准的方法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(confirmed) { if (confirmed) frob(id); wipe(id); }); } 如果需要保留它,则需要查看另一个嵌套闭包或function.bind来执行此操作.如果你有一个在循环中确认的话,事情会变得更加困难. 显然,您还必须确保在确认框启动时关键的全局状态不会发生变化.通常,通过使用叠加层覆盖页面的其余部分来阻止点击通过,可以最大限度地降低风险.但是,如果你有超时,他们仍然可以开火. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – DropDownListFor在编辑视图上不重复的项目(
- asp.net-core-mvc – 为dotnet核心asp.net运行CRUD脚手架时
- asp.net-mvc – 如何在Require.js中引用捆绑的js文件(asp.n
- ASP.NET缓存 方法和最佳实践
- asp.net – 存储CheckBoxList的DataValueField值在哪里?
- asp.net – Controller.Execute呈现为没有内容类型的文本文
- asp.net-mvc – 空MVC5项目中的附加脚本
- asp.net – IIS作为反向代理 – 从后端服务器压缩重写的响应
- asp.net-mvc – 在同一页面显示搜索表单及其结果的最佳方法
- asp.net-mvc – MVC 3 – 使用List类型属性绑定到复杂类型
- ASP.NET 2.0 JQuery AJAX登录
- ASP.NET智能感知与客户端属性
- Roslyn还出现这么低级的错误,不应该呀!
- asp.net-mvc – 如何锁定一个asp.net mvc动作?
- asp.net-mvc-3 – .Net Mvc 3触发器(提交按钮除外
- asp.net-mvc – HttpResponseMessage内容不会显示
- 从Trace和Debug来看条件编译(Conditional Compi
- asp.net-mvc – 为什么不在ASP.NET MVC项目的Con
- asp.net – 带有查询字符串的server.Transfer
- 将额外的信息与ASP.NET MVC成员关联