Tencent / weui.js

A lightweight javascript library for WeUI.
Other
3.17k stars 927 forks source link

weui的alert弹窗如何销毁 #313

Open webstermobile opened 4 years ago

webstermobile commented 4 years ago

alert以后,如果不手动点击确定,路由改变的时候alert弹窗还是存在

SupZ6 commented 4 years ago

我是这么解决的,用的是VUE,在router/index.js里加上这段:

router.beforeEach((to, from, next) => {
    //路由发生变化时强制关闭Weui弹窗
    let mask = document.getElementsByClassName("weui-mask")[0];
    if (mask) {
        let doms = ['picker', 'dialog', 'actionsheet'];
        for (let d of doms) {
            let dom = document.getElementsByClassName(`weui-${d}`)[0];
            if (dom) {
                let e = document.createEvent("MouseEvents");
                let a = document.getElementsByClassName(d == 'actionsheet' ? 'weui-mask' : `weui-${d}__btn`)[0]
                e.initEvent("click", true, true);
                a.dispatchEvent(e);
            }
        }
    }
    next();
});

参考地址