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'
)
}
}
H5 history.pushState 在微信内修改url后点击用safari打开/复制链接是修改之前的页面的更多相关文章
- 安卓版微信内置浏览器,<a href="tel:电话号码"></a> 这个链接失效,不能跳到拨号界面?
https://segmentfault.com/q/1010000000318831 在URL最后面加“ #mp.weixin.qq.com ”,应该加其他qq.com的二级域名都行,估计是微信的安 ...
- 微信公众号菜单openid 点击菜单即可打开并登录微站
现在大部分微站都通过用户的微信openid来实现自动登录.在我之前的开发中,用户通过点击一个菜单,公众号返回一个图文,用户点击这个图文才可以自动登录微站.但是如果你拥有高级接口,就可以实现点击菜单,打 ...
- vue 单页面(SPA) history模式调用微信jssdk 跳转后偶尔 "invalid signature"错误解决方案
项目背景 vue-cli生成的单页面项目,router使用history模式.产品会在公众号内使用,需要添加微信JSSDK,做分享相关配置. 遇到的问题 相关配置与JS接口安全域名都已经ok,发布后, ...
- 2018idea如何布置tomcat修改URL后连接不到
以下连接 https://blog.csdn.net/cs825900618/article/details/86261019
- location - 修改url后 - 重新加载
window.location.href = window.location.pathname + search;
- kindeditor编辑器修改文本后保存时发现获取到的内容还是修改前的文本内容
定义kindeditor的时候要加上一下几个属性设置: KindEditor.ready(function(K) { var editor = K.create("textarea[name ...
- angular ng-repeat出来的数据 每条修改数据后返回给接口 如何取到每个对应修改的值
接口结构 $scope.DataList = [ { "dataA":"numA", "dataB":"numB"a } ...
- history.pushState 实现浏览器页面不刷新修改url链接
最近遇到了在不刷新页面的情况下修改浏览器url链接的需求,遂求助于万能的度娘,最终通过history.pushState()完美解决问题.现在将我理解的一些内容分享一下,不对的地方欢迎大家指出. 在使 ...
- history.pushState()和history.replaceState()
Html5 新增history对象的两个方法:history.pushState()和history.replaceState(),方法执行后,浏览器地址栏会变成你传的url,而页面并不会重新载入或跳 ...
随机推荐
- python中join()函数的使用方法
函数:string.join() Python中有join()和os.path.join()两个函数,具体作用如下: join(): 连接字符串数组.将字符串.元组.列表中的元素以指定的字 ...
- Ubuntu Server 18.04 修改网路配置
新的Ubuntu 服务器采用netplan管理网络配置,跟以前的配置有很大的区别. 实际可行的办法是修改/etc/netplan/01-netcfg.yaml文件: sudo vim /etc/net ...
- BOM基础 计时器 定时器 DOM 基础
-------------------------------------------滴水穿石,我心永恒. day48 CSSJS 1 ECMA script 2 BOM browser object ...
- Method not found: !!0[] System.Array.Empty()错误
最近由于公司项目需要将之前支持的TLS1.0改成更安全的TLS1.2,而公司现有项目都是老系统,有的是.NET FrameWork 4.0,有的是.NET FrameWork3.5,但是TLS1.2默 ...
- Codeforces Round #485 (Div. 2)-B-High School: Become Human
B. High School: Become Human time limit per test 1 second memory limit per test 256 megabytes input ...
- 使用webview几种常见的hybrid通信方式
js 与原生之间的通信: 1.JSbridge::(webviewJavascriptBridge)一种js与原生native通信的机制,可以h5与native互调: 2.Cordova: 核心就是原 ...
- hibernate 关于hbm.xml编写的总结
在Hibernate中,各表的映射文件….hbm.xml可以通过工具生成,例如在使用MyEclipse开发时,它提供了自动生成映射文件的工具.本节简单的讲述一下这些配置文件的配置. 配置文件的基本结构 ...
- 我的集合学习笔记--ArrayList
一,ArrayList 实现自己的ArrayList:主要是添加方法,理解自动扩容机制 代码+注释 package com.amazing.jdk.learn2List.list_08_13; /** ...
- 正则校验:微信号,qq号,邮箱
java判断微信号.手机.名字的正则表达 - willgos - 博客园https://www.cnblogs.com/solossl/p/5813106.html 微信号正则校验,qq正则,邮箱正则 ...
- [编程笔记]第一章 C语言概述
//C语言学习笔记 第一讲 C语言概述 第二讲 基本编程知识 第三讲 运算符和表达式 第四讲 流程控制 第五讲 函数 第六讲 数组 第七讲 指针 第八讲 变量的作用域和存储方式 第九讲 拓展类型 第十 ...