近发现一个现象,在ios13系统版本中返回到上个页面不刷新,获取不到数据;只有手动刷新页面才能获取数据展示;
var str = navigator.userAgent.toLowerCase();
var ver=str.match(/cpu iphone os (.*?) like mac os/);
if (ver){
var iosB = ver[1].replace(/_/g,".").split('.')[0];
if(iosB>=13){
window.onpageshow=function(e){
if (e.persisted||(window.performance && window.performance.navigation.type == 2)){
window.location.reload();
}
}
}
}
1、获取系统信息;
var str = navigator.userAgent.toLowerCase();
2、判断是否为ios系统;
var ver=str.match(/cpu iphone os (.*?) like mac os/);
if (ver){
}
3、获取系统版本,判断是否等于大于13;
var iosB = ver[1].replace(/_/g,".").split('.')[0];
if(iosB>=13){
}
4、判断此页面是否从缓存中获取或者支持window.performance并且window .performance. navigation. type ==2;
window.onpageshow=function(e){
if (e.persisted||(window.performance && window.performance.navigation.type == 2)){
window.location.reload();
}
}
window.performance 是W3C性能小组引入的新的API,目前IE9以上的浏览器都支持。
想要了解window.performance可以查看此网站,百度上查找的:https://www.cnblogs.com/libin-1/p/6501951.html
气这么冷,大家都多穿点衣服哦,不用只讲风度,不要温度哦!
小程序如何返回到上一个页面,并刷新页面呢?这样的需求很常见,比如: 订单详情页面,订单状态是“已付款”,这时候发起“退款”,跳转到申请退款页面,申请成功后,返回到订单详情,这时候的订单状态 是不是要变为“退款中”的状态?
微信小程序如何返回到上一个页面,并刷新页面呢?
在普通的html页面,很简单,不用操作都可以实现。因为浏览器返回会自动刷新。 但是小程序返回是不会自动刷新上一个页面的。所以需要一点点技巧。
下面还是模拟上面的场景。
发起申请退款后,我们用wx.navigateBack()返回到订单详情页面,小程序API有详情说明。
关闭当前页面,返回上一页面或多级页面。可通过 getCurrentPages() 获取当前的页面栈,决定需要返回几层。 参数说明:
微信小程序如何返回到上一个页面,并刷新页面呢?
重点来了,抛开上面的需求,我们就查询订单详情接口
onLoad(options){ let orderId = options.orderId; // 根据orderId查询订单详情数据 wx.request({ url: 'xxxxxx', // 接口地址 data: { orderId: orderId }, header: { 'content-type': 'application/json' // 默认值 }, success(res) { console.log(res.data) } }) }
如果就这样,那页面返回并不执行onLoad函数,所以就不会获取新的数据,来更新状态。
我们找到了onShow函数(生命周期回调 — 用于监听页面显示)Page(Object) 构造器详细说明
返回时,onShow是会执行的,所以改造上面方法
data: { orderId: '' }, onShow() { // 获取data里面存的orderId let orderId = this.data.orderId; wx.request({ url: 'xxxxxx', // 接口地址 data: { orderId: orderId }, header: { 'content-type': 'application/json' // 默认值 }, success(res) { console.log(res.data) } }) }, onLoad(options){ let orderId = options.orderId; // 向data里面set orderId this.setData({ orderId: orderId }) }
onLoad把参数存起来,这个参数options是订单列表,或者其他页面带入的。从申请退款页返回,是不用参数的,返回onShow 执行需要的orderId是原来已经缓存的。 然后onShow直接用这个参数,onShow是获取不到url参数的。
小程序开发中,如果用到倒计时,当退出小程序,或者,按手机home键,倒计时不会继续执行。比如,到时间是30s,你按了home键,过了10s,再进入小程序,倒计时不是是20s,依旧会从30s倒计时。 所以,也需要用到onShow,来刷新这个倒计时。 这也是小程序退出,重新进入不会执行onLoad函数的问题。
喜欢小编的点击关注,了解更多知识!
源码地址请点击下方“了解更多”
段子手168
方法一:代码破解法
打开你需要复制内容的网页,在浏览器地址栏输入“javascript:void($={});”这串代码,
然后按下回车键,这时候就允许你复制文本了。
方法 二:打印网页法
我们还可以利用打印网页的时候,在预览页面将文本复制下来。按下快捷键【Ctrl+P】,
将会进入打印界面,直接在右侧的预览界面,选中文本进行复制。
方法三:后台控制端
打开网页后,按下功能键【F12】,进入网页后台找到【Console】,
在下面输入这串符号“$=0”,再2按下回车键,
网页文字就能自由复制了。
方法四:查看源代码
你还可以在网页空白处,右击选择【查看页面源代码】,然后一直向下滑动,找到密密麻麻的文本,
选中直接复制提取出来。
方法五:保存本地网页
打开网页鼠标右击,选择【网页另存为】,然后在弹出的窗口中,
将保存类型改为【网页,仅HTML】,接着点击【保存】。
关闭当前网页,回到桌面找到刚刚保存的本地网页文件,双击打开后,就可以随意复制啦。
方法六:截图识别文字
此外,我们还可以利用OCR文字识别技术,将网页文字识别出来。
需要借助掌上识别王工具,找到【文字识别】-【快速截图识别】功能。
方法七:
网址最前面加上 read: (用 Microsoft Edge 浏览器打开)
方法八:
1)按 F12 打开调试框,点击右上角【设置】。
2)往下拉,找到 【Debugger】
3)勾选 【Disable JavaScript】
4)返回页面,按 F5 刷新一下页面,这样网页文字就可以复制了。
*请认真填写需求信息,我们会在24小时内与您取得联系。