如何使用JavaScript重定向到另一個網頁

JavaScript提供了許多將用戶重定向到其他網頁的方法。學習規範的方法,並使用普通的JavaScript找出所有可用的選項

JavaScript提供了許多將用戶重定向到其他網頁的方法,如果在執行程序期間您需要移動到其他頁面。

可以認為可以導航到新URL的規範是

window.location = 'https://newurl.com'

如果要重定向到同一域上的其他路徑,請使用:

window.location.pathname = '/new'

這是使用location由提供的對象歷史API

其他重定向選項

與編程中的大多數事情一樣,執行相同操作的方法有很多。

自從window在瀏覽器中是隱式的,您還可以執行以下操作:

location = 'https://newurl.com'

另一種方法是設置href的財產location

window.location.href = 'https://newurl.com'

location也有一個assign()接受URL並執行相同操作的方法:

window.location.assign('https://newurl.com')

replace()方法與以前的方法不同,因為它會重寫歷史記錄中的當前頁面。當前頁面已被擦除,因此,當您單擊“後退”按鈕時,您將返回到該頁面。現在是最後一次拜訪的人。

window.location.replace('https://newurl.com')

在某些情況下這可能很方便。

不同的方式達到window目的

瀏覽器顯示selftop對象,這些對像都引用了window對象,因此您可以使用它們代替window在以上所有示例中:

self.location = 'https://newurl.com'

top.location = https://newurl.com

301使用伺服器端指令重新導向

上面的示例均考慮了通過程序決策轉移到其他頁面的情況。

如果由於當前URL舊而需要重定向,然後移動新URL,則最好使用服務器級指令並設置301 HTTP代碼,以向搜索引擎發出信號,表明當前URL已永久移至新資源。

這可以通過.htaccess如果使用Apache。Netlify通過一個做到這一點_redirects文件

使用JavaScript是否可以進行301重定向?

不幸的是沒有。

在客戶端這是不可能的。

必須先從服務器發送301 HTTP響應代碼,然後才能由瀏覽器執行JavaScript。

實驗表明,JavaScript重定向是由搜索引擎解釋的,例如301重定向。看此搜索引擎土地發布以供參考。

谷歌說

使用JavaScript重定向用戶可能是合法的做法。例如,如果您在用戶登錄後將其重定向到內部頁面,則可以使用JavaScript進行操作。在檢查JavaScript或其他重定向方法以確保您的網站遵守我們的指南時,請考慮其意圖。請記住,在移動網站時,最好使用301重定向,但是如果您無權訪問網站的服務器,則可以使用JavaScript重定向。

使用HTML元標記

另一種選擇是在HTML中使用meta標籤:

<html>
  <head>
    <meta http-equiv="refresh" content="0;URL=https://newurl.com/">
  </head>
</html>

一旦加載並解釋了當前頁面,這將導致瀏覽器加載新頁面,而不會向搜索引擎發出任何信號。最佳選擇始終是使用301服務器級重定向。

免費下載我的JavaScript初學者手冊


更多js教程: