这两天在用mui写自定义confirm格式时遇到了跨页面调用函数的问题,由于confirm样式多而且多处用到,因而我将它写成了一个confirm.html文件,并写一个openConfirm函数用于跳转到该文件,在原js页面上加一个按钮监听器,点击按钮后调用openConfirm函数来打开新样式的弹窗,此时遇到了一个问题,即弹窗选择确定或取消需要对应不同的动作,动作需要写在mui.confirm的回调函数里,而该动作又在原js页面上,因此出现了一个跨页面调用函数的问题。
首先尝试了一下plus.storage.setItem()和plus.storage.getItem来记录按下的确定或取消按钮来解决该问题,发现由于按钮监听器触发后就会执行所有语句,因此未等到保存按下的确定和取消键监听已经执行完成了,造成了异步的情况。
然后尝试使用return直接返回值,发现也是同样的问题。
最后采用一下方式解决了该问题:
-
先在原js页面对按钮添加监听
sign_btn.addEventListener("click",function() { openConfirm('../../../confirm.html',{ type:"confirm",main:"sign"})