mui 在有父子页面嵌套的情况下,如底部导航栏;子页面调起遮罩蒙板mask,如使用alert、confirm等对话框时;父页面并没有被遮罩蒙板所覆盖。此种情况下可以通过自定义事件来通知父页面打开遮罩蒙板。
例:
父页面 parentPage.html
子页面 subPage.html
在subPage.html下:
//获取父页面的webview对象
var main = plus.webview.getWebviewById("parentPage.html");
//定义自定义事件openMask,通知父页面的打开遮罩蒙板
mui.fire(main, 'openMask', {});
mui.alert(MESSAGE, '订单超时', '去处理', function(e) {
//定义closeMask事件,通知父页面来关闭遮罩蒙板
mui.fire(main, 'closeMask', {});
业务逻辑.....
}, 'div');
在父页面parentPage.html下:
var flag = false;
//创建遮罩蒙板
var mask = mui.createMask(function() {
//设置点击蒙板不会自动消失
//但调用close方法关闭mask时,必须返回true
return flag;
});
//监听自定事件
//打开遮罩蒙板
window.addEventListener("openMask", function(e) {
mask.show(); //显示遮罩
});
//关闭遮罩蒙板
window.addEventListener("closeMask", function(e) {
flag = true;
mask.close();
});