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

你可能感兴趣的:(H5 history.pushState 在微信内修改url后点击用safari打开/复制链接是修改之前的页面...)