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