整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

前端必备技能:ios系统13版本返回上个页面不刷新解决方法;

近发现一个现象,在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函数的问题。

公告

喜欢小编的点击关注,了解更多知识!

源码地址请点击下方“了解更多”

# 网页文本禁止复制粘贴?一分钟学会8种方法轻松突破限制

段子手168


方法一:代码破解法

打开你需要复制内容的网页,在浏览器地址栏输入“javascript:void($={});”这串代码,

然后按下回车键,这时候就允许你复制文本了。

方法 二:打印网页法

我们还可以利用打印网页的时候,在预览页面将文本复制下来。按下快捷键【Ctrl+P】,

将会进入打印界面,直接在右侧的预览界面,选中文本进行复制。

方法三:后台控制端

打开网页后,按下功能键【F12】,进入网页后台找到【Console】,

在下面输入这串符号“$=0”,再2按下回车键,

网页文字就能自由复制了。

方法四:查看源代码

你还可以在网页空白处,右击选择【查看页面源代码】,然后一直向下滑动,找到密密麻麻的文本,

选中直接复制提取出来。

方法五:保存本地网页

打开网页鼠标右击,选择【网页另存为】,然后在弹出的窗口中,

将保存类型改为【网页,仅HTML】,接着点击【保存】。

关闭当前网页,回到桌面找到刚刚保存的本地网页文件,双击打开后,就可以随意复制啦。

方法六:截图识别文字

此外,我们还可以利用OCR文字识别技术,将网页文字识别出来。

需要借助掌上识别王工具,找到【文字识别】-【快速截图识别】功能。

方法七:

网址最前面加上 read: (用 Microsoft Edge 浏览器打开)

方法八:

1)按 F12 打开调试框,点击右上角【设置】。

2)往下拉,找到 【Debugger】

3)勾选 【Disable JavaScript】

4)返回页面,按 F5 刷新一下页面,这样网页文字就可以复制了。