1. 程式人生 > 程式設計 >返回上一個url並重新整理介面的js程式碼

返回上一個url並重新整理介面的js程式碼

JS 過載頁面,本地重新整理,返回上一頁

<a href="javascript:history.go(-1)" rel="external nofollow" >返回上一頁</a>
<a href="javascript:location.reload()" rel="external nofollow" >過載頁面,本地重新整理</a>
<a href="javascript:history.go(-1);location.reload()" rel="external nofollow" >返回上一頁過載頁面,本地重新整理</a>

history.back();
back();

上面兩個方法不行,多次嘗試後,用下面的解決了

location.href=document.referrer;

返回前二頁並重新整理的JS程式碼應該怎樣寫。

js 方法

<a href="#" rel="external nofollow" onclick="self.location=document.referrer;">返回</a>

asp自動返回並重新整理的方法:

response.Write("<script language=javascript>self.location=document.referrer;</script>")

一般用於向一個頁面提交action後返回前一頁並重新整理!

php做法

echo "<script>alert('退出成功!');location.href='".$_SERVER["HTTP_REFERER"]."';</script>";

設定刪除成功後返回前一頁,並重新整理

if($query)
{
$page="listrenwu.php";
<!---這種方式不會重新整理,只會原樣返回-->
echo "<script>alert('刪除成功');history.go(-1)</script>";
<!--//設定刪除成功後返回前一頁,並重新整理-->-->
echo "<script>alert('刪除成功');window.location = "".$page."";</script>";
}

這個算是php教程中最簡單的哦,不多說你懂的。

下面是其他網友的補充

使用history.length判斷是否有上一頁面,如果沒有就返回到指定頁面

使用history.length判斷是否有上一頁面,如果沒有就返回到指定頁面,一般是返回到首頁

function goBack(){
  if ((navigator.userAgent.indexOf('MSIE') >= 0) && (navigator.userAgent.indexOf('Opera') < 0)){ // IE
    if(history.length > 0){
      window.history.go( -1 );
    }else{
      window.location.href = "/";
    }
  }else{ //非IE瀏覽器
    if (navigator.userAgent.indexOf('Firefox') >= 0 ||
      navigator.userAgent.indexOf('Opera') >= 0 ||
      navigator.userAgent.indexOf('Safari') >= 0 ||
      navigator.userAgent.indexOf('Chrome') >= 0 ||
      navigator.userAgent.indexOf('WebKit') >= 0){
 
      if(window.history.length > 1){
        window.history.go( -1 );
      }else{
        window.location.href = "/";
      }
    }else{ //未知的瀏覽器
      window.history.go( -1 );
    }
  }
}

從這裡想到一個使用者的特殊需求,那就是在公眾號中輸入生日後 ,關閉H5,讓公眾號彈出二維碼。當時說不可能,現在看來自己太年輕了。

window.opener=null;
window.close();

接著補充

前言

使用單頁面的話 document.referrer 一直為空(.html或者ssr網頁則存在值)
History.length 表示使用者歷史會話頁面的數量。當用戶從新的標籤頁或框架載入頁面其值為“1”,每訪問一個頁面該值增加“1”。
因為history.length 的數量只增不減,根本不能拿來做判斷。

場景

需要判斷使用者從微信瀏覽器通過瀏覽器開啟當前網頁,如果是則當用戶點選返回按鈕時返回到web應用(站點)首頁

- 或:是否有前一頁
- 通過history.length
- 不準確,如果使用者曾經開啟過,則會存在更多的history.length
- 如果使用者不曾開啟過,且直接從微信瀏覽器再使用系統瀏覽器開啟,則history.length === 1(其中手機瀏覽器中為1,chrome控制檯為2)
- 或:判斷使用者是否訪問過
- 通過cookie或是sessionStorage

- https://oldj.net/blog/2013/08/11/browser-history-sniffing

- 或:判斷 history 中是否存在指定url
- 沒有找到相關方法
- 或:是否是通過微信瀏覽器喚醒裝置瀏覽器再開啟到當前網頁的
- 沒有找到相關方法
肯定還有其他方法實現 `當用戶點選返回按鈕時返回到web應用(站點)首頁` 這個功能的,現在腦袋有點暈,如果有的話,也希望能得到分享,非常感謝。
對了,Vuex能否判斷呢?實在是沒有找到相關方法,或許有。

最後

別忘記監聽瀏覽器的返回事件啦 :

window.addEventListener("popstate",function(e) {
alert("我監聽到了瀏覽器的返回按鈕事件啦");//根據自己的需求實現自己的功能
},false);

我是如何解決的

當用戶在微信中開啟web應用(站點)時,則提示使用者使用瀏覽器開啟;
再配合Cookie和sessionStorage做快取了router記錄來判斷使用者點選返回按鈕時是否需要直接回到home頁;

到此這篇關於返回上一個url並重新整理介面的js程式碼的文章就介紹到這了,更多相關js返回上一個url內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!