EasyUI Messager 消息框点击右上角x无法执行回掉函数解决
我先声明下,我是改动源码,网上的其他方法我试过了,不行。我是写java后台的,前端也是小白,可能讲的也也不是很清楚。
首先我想到的是在网上找到解决方法,我找到一个方法说在jquery.easyui.min.js里面加入一段代码,我试过了,不行。
根据这个思路,更改easyui源码,我们来看源博主是怎么改的。
我用的是easyui1.3.2,跟原博主的版本也是不一样的,easyui源码里面获取window的方法名也不叫_211,然后ctrl+h搜索var win,在jquery.easyui.min.js里面找到了var win=_237(_238, _239, _23a);这个方法,我猜测,应该是跟源博主说的一样,版本不一样,方法名有所改变。然后我找到_237这个方法,发现他返回的是一个window。再去看openAlert()这个方法,从源头上面调用是调用$.messager这个对象的一个属性,属性为alert,是一个方法,看下图
先看上面红色框,defaults.ok,然后执行传入的fn回掉函数,然后我结合实际情况,猜测这个就是Messager 窗口点击确认执行的方法。由此可见,点击Messager 窗口确定的时候,会执行你传入的fuction,也就是openAlert()的第四个参数。如果不信,可以在里面加入console.log()试验一下,具体是不是这样,我没有试过,重点并不在这里。在看下面的红色框内。这里调用了_237这个方法获取了一个window,然后我到_237这个方法里面去看。
我们可以看到,_237里面声明了一个window,对这个window进行了一系列操作,别的不看,看箭头指向这个位置。onClose不就是关闭按钮吗,点击关闭按钮执行的函数,函数里面只是做了个延迟0.01秒关闭页面的操作,入口找到了。当时的内心还是很鸡动的,啊呸,激动,哈哈。到这里,我们知道$.messager.alert是一个函数,里面调用了_237这个函数。你调用openAlert()的时候就是在调用$.messager.alert的函数,而$.messager.alert又调用了_237这个方法。这个时候,我们只需要给_237这个方法加入一个参数fn。如下图:
这样就把你传入的回掉函数在Messager窗口点击右上角x的时候执行了。在alert这个函数里面,调用_237这个方法的时候加上fn这个参数就行。当然,_237这个函数是共用的,所以,其他方式打开的窗口调用_237的时候,也需要加入fn这个参数:
这个时候就完成了对源码的修改,个人亲测,没有问题。如果是版本和我不一样,找找这个方法应该就能找到,这个方法很显眼。当然,源码改完只够都需要去测试一把,哈哈。希望能帮助被这个问题所困扰的同学。我一个月更新一片博客,和大家共同成长,一个工作11个月的彩笔的随笔
最新文章
- Dell R730 配置完RAID后装系统找不到硬盘。
- LeetCode刷刷记录
- PHP的大括号(花括号{})使用详解
- HTML5 Web app开发工具Kendo UI Web中如何绑定网格到远程数据
- Gliffy
- <;转>;写给浮躁的IT同仁(请不要做浮躁的人)
- 绕过图片格式限制上传木马获取WebShell
- rhel Linux 网络配置
- Python学习之路——初识Python
- angularjs中的几种工具方法
- dict的操作和三级菜单
- nginx,作为前端的你会多少?
- 在centos7中python3的安装注意
- git android.google 源码:Unknown SSL protocol error in connection to code.google.com:443
- 551. Student Attendance Record I
- NABC for Teamproject
- JAVA AQS源码分析
- Go实现查找目录下(包括子目录)替换文件内容
- 8、springboot之定时任务
- SQL点点滴滴_唯一索引设计指南-转载
热门文章
- Manacher求最长回文
- 使用百度地图API进行Android地图应用开发(Eclipse)
- 王立平--java se的简单项目创建以及具体解释
- luogu1268 树的重量
- System.IO.Path 操作
- 关于MFC控件删除出现“具有该ID的控件已存在”这样的情况的解决方案,详细,网上都没有这么详细的,我是“深受其害”,所以想将详细的方法分享出去。
- linux下sh语法(转载)
- SqlMap常用参数(一)
- CALayer(一)
- MySQL数据库中的delete语句