收藏
回答

微信内网页使用 location.replace 和 history.replaceState 问题

  1. 微信内网页使用 window.location.replace 后,最新页面仍添加到历史记录里面了,需要后退两次(正确的行为:后退一次)
  2. 使用 history.replaceState 的话,历史记录确实被替换了,但是当前页面会刷新 (正确的行为:当前页面不刷新)
回答关注问题邀请回答
收藏

3 个回答

  • Mr.Liu
    Mr.Liu
    03-17

    页面重定向之后发现在微信里点击后退之后,又会重新返回这个页面,必须要连续快速的点击返回才能退出关闭浏览器,

    这个用户体验就非常不好,

    我们可以手动给浏览器新加一条空的浏览记录‘#’,

    然后监控这个#链接,当返回到这个链接的时候,说明用户已经做了后退操作,然后调用微信的jsdk方法来关闭微信浏览器,

    这样就实现了点击一次后退就直接退出;

    $(function(){

        pushHistory(); 

    window.addEventListener("popstate", function(e) { 

    wx.closeWindow();

    }, false); 

    function pushHistory() { 

    var state = { 

    title: "title", 

    url: "#"

    }; 

    window.history.pushState(state, "title", "#"); 

    })

    03-17
    有用 1
    回复
  • 小姜
    小姜
    2020-07-30

    location.replace方法还是会添加一条历史记录。

    2020-07-30
    有用
    回复
  • 社区技术运营专员-小柿子
    社区技术运营专员-小柿子
    2020-03-06

    安卓还是ios呢?

    2020-03-06
    有用
    回复 3
登录 后发表内容
问题标签