移动端的浏览器页面返回到微信端页面的页面数据修改问题

出现的问题

我们在开发移动端的时候,往往会有外跳项目的链接,而在外跳的页面进行操作返回后,本页面就需要进行数据的更新和判断操作

错误的思路

1.在中跳页面监听页面的返回键事件;

window.addEventListener('pageshow', function(event) {
    if (event.persisted) {
        更改数据操作
    }    // 如果检测到页面是从“往返缓存”中读取的
});

结果:监听不到返回键的事件
2.在外跳项目的时候建立一个缓存,之后在需要修改的页面进行缓存的读取更改数据;
结果:读取不到缓存,因为缓存的存放和读取不在同一个地方(读取的是本地缓存,而建立缓存被存放到浏览器缓存中了)

正确key

总结思维:既然我们不能对跳转时的操作和中跳页面操作时,那只剩下对原页面进行操作了。即每次进入页面就进行区分

$(function(){
        if ((/iphone|ipod|ipad.*os 5/gi).test(navigator.appVersion)) {
        // 这里是ios机型的判断
            window.onpageshow = function(event) {
                var isOrder = getCookie('isOrder');
                if (event.persisted) {
                    // 跳转操作成功后的返回操作
                }else {
                    if (isOrder == 'true') {
                        setCookie('isOrder',false);
                        // 跳转的启动时候建立缓存

                        // 这里是为了跳转后半路返回的操作
                    }else {
                    }
                }

            };
        }
        else {
            var e=$("#refreshed");
            if(e.val() == "no") {
                e.val('yes');
            }else{
                e.val('no');
                // 在这进行android的操作
            }
        }
    });

html:

type="hidden" id="refreshed" value="no">

希望对各位能有点小帮助~~~~

你可能感兴趣的:(javaScript)