在微信浏览器中不刷新页面修改URL

目前手上有个项目 想在微信中打开之后再URL上给一个用户的标示
例如:

http://******?userid=XXXX

尝试使用HTML5的新特性history之后发现在微信中无法改变URL并且会导致signature错误,
而且右边菜单只剩下一个收藏按钮。
用了JS的window.location.href
但是发现如果使用

window.location.href=window.location.href+"?id=4";

造成地址一致在追加?id=4

clipboard.png
所以想请问一下有没有什么解决办法

阅读 19.9k
5 个回答
新手上路,请多包涵

location.pathname += '?id=xxx'

如果你不想刷新的话,可以改变地址的hash location.hash = 'id=xxx'
然后通过ajax获取数据

启用前端路由支持吧~ #/:id/:item

新手上路,请多包涵

你应该加一个触发条件,
如果没有条件,这个页面会无限跳转下去.

新手上路,请多包涵

我也遇到了,
安卓没有那个问题,所以我这么解决了
if (/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent) &&
window.location.href.indexOf('?')==-1) { window.location.replace(window.location.href+'?random='+parseInt(Math.random()*1048576));
}

replacestate

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题