H5 history.pushState 在微信内修改url后点击用safari打开/复制链接是修改之前的页面

解决方案:url参数增加随机参数

function wxRefresh() {
    var replaceQueryParam = (param, newval, search) => {
        var regex = new RegExp('([?;&])' + param + '[^&;]*[;&]?');
        var query = search.replace(regex, '$1').replace(/&$/, '');

        return (query.length > 2 ? query + '&' : '?') + (newval ? param + '=' + newval : '');
    };

    window.location.replace(location.protocol +
        '//' +
        location.host +
        location.pathname +
        replaceQueryParam('_wxr_', new Date().getTime(), location.search) +
        location.hash);
};
// 执行
wxRefresh();




优化加入refresh,避免重复刷新
share(route) {
    var replaceQueryParam = (param, newval, search) => {
      var regex = new RegExp('([?;&])' + param + '[^&;]*[;&]?')
      var query = search.replace(regex, '$1').replace(/&$/, '')
      return (
        (query.length > 2 ? query + '&' : '?') +
        (newval ? param + '=' + newval : '')
      )
    }

    if (!route.query.refresh) {
      var chat = '&'
      if (!Object.keys(route.query).length) {
        chat = '?'
      }
      window.location.replace(
        location.protocol +
        '//' +
        location.host +
        location.pathname +
        replaceQueryParam('_wxr_', new Date().getTime(), location.search) +
        location.hash +
        chat + 'refresh=true'
      )
    }
  }
原文地址:https://www.cnblogs.com/richard1015/p/8477869.html