[前端][fmui]跳转返回后页面刷新,导致已填的数据重置

问题现象

政务微信平台,遇到需要跳转到另一页面获取数据并返回给当前页面时,页面自动刷新,所有填了的数据都被重置。

问题原因

纯H5页面在返回时会自动刷新。

解决方案

改为使用FMUI的epointm.openDialog弹窗打开需要跳转的页面,这样关闭弹窗当前页面就不会刷新了

父页面打开弹出框方法

父页面(FMUI页面)

/**
* 打开一个弹出框
*
* @param {String} title 弹出框的标题
* @param {String} url 弹出框中页面的地址
* @param {Function} callback 关闭时的回调,参数为弹出页面传回来的数据action
* @param {Object} settings 其他不常用参数,格式如下:
*/
epointm.openDialog('测试测', './dialogchild.html', function(rtn) {
    console.log(rtn);
    console.log('关闭页面成功!');
    },{
    // 给子页面传递的参数
    params: {
        test: 123
    }, 
    height: "100%", // 弹窗高度 ,默认 500px
    position: "bottom", // 弹窗显示位置 , 默认 bottom
    showCloseButton: false, // 显示关闭按钮 , 默认 false
})   

子页面对应关闭方法参考以下代码:

子页面(FMUI页面)

/**
* 关闭弹出框
* params {String | Object} 传递参数
*/
epointm.closeDialog('ok')

子页面(FMUI页面或非FMUI页面非跨域页面)

window.parent.epointm.closeDialog('ok')

子页面跨域

使用Pipeline在子页面调用父页面写的关闭方法

var pageB_Server = new Pipeline('父页面的window对象');

pageB_Server.exec('epointm.closeDialog', '传给父页面的参数', function (err, result) {});

Pipeline具体使用方法可参考下面的链接:

Pipeline跨域通信解决方案open in new window

epointm更多api可参考下面的链接:

epointm通用方法open in new window

最后更新时间::
贡献者: wyanqd