近發現一個現象,在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小時內與您取得聯系。