Cách chuyển hướng đến một trang web khác bằng JavaScript

JavaScript cung cấp nhiều cách để chuyển hướng người dùng đến một trang web khác. Tìm hiểu cách chuẩn và cũng tìm ra tất cả các tùy chọn bạn có, sử dụng JavaScript thuần túy

JavaScript cung cấp nhiều cách để chuyển hướng người dùng đến một trang web khác, nếu trong quá trình thực thi chương trình, bạn cần chuyển đến một trang khác.

Cách có thể được coi là chuẩn để điều hướng đến một URL mới là

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

Nếu bạn muốn chuyển hướng đến một đường dẫn khác, trên cùng một miền, hãy sử dụng:

window.location.pathname = '/new'

Điều này đang sử dụnglocationđối tượng được cung cấp bởiAPI lịch sử.

Các tùy chọn khác để chuyển hướng

Như với hầu hết mọi thứ trong lập trình, có nhiều cách để thực hiện cùng một hoạt động.

Từwindowlà ẩn trong trình duyệt, bạn cũng có thể làm:

location = 'https://newurl.com'

Một cách khác là đặthreftài sản củalocation:

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

locationcũng có mộtassign()phương thức chấp nhận một URL và thực hiện điều tương tự:

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

Cácreplace()phương pháp khác với các cách trước vì nó viết lại trang hiện tại trong lịch sử. Trang hiện tại đã bị xóa, vì vậy khi bạn nhấp vào nút “quay lại”, bạn sẽ quay lại tranghiện naylà người được thăm cuối cùng.

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

Điều này có thể thuận tiện trong một số tình huống.

Các cách khác nhau để tiếp cậnwindowvật

Trình duyệt cho thấyselftopcác đối tượng, tất cả đều tham chiếu đếnwindowđối tượng, vì vậy bạn có thể sử dụng chúng thay vìwindowtrong tất cả các ví dụ trên:

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

top.location = https://newurl.com

Chuyển hướng 301 bằng cách sử dụng chỉ thị phía máy chủ

Tất cả các ví dụ trên đều xem xét trường hợp của một quyết định có lập trình để chuyển sang một trang khác.

Nếu bạn cần chuyển hướng vì URL hiện tại đã cũ và di chuyển URL mới, tốt nhất bạn nên sử dụng chỉ thị cấp máy chủ và đặt mã HTTP 301 để báo hiệu cho các công cụ tìm kiếm rằng URL hiện tại đã vĩnh viễn chuyển sang tài nguyên mới.

Điều này có thể được thực hiện thông qua.htaccessnếu sử dụng Apache.Netlifylàm điều này thông qua một_redirectstập tin.

Có thể sử dụng JavaScript để chuyển hướng 301 không?

Không may măn.

Điều đó không thể thực hiện ở phía khách hàng.

Mã phản hồi 301 HTTP phải được gửi từ máy chủ trước khi JavaScript được trình duyệt thực thi.

Các thử nghiệm nói rằng chuyển hướng JavaScript được diễn giải bởi các công cụ tìm kiếm như chuyển hướng 301. Xembài đăng này của Search Engine Landđể tham khảo.

Google nói:

Sử dụng JavaScript để chuyển hướng người dùng có thể là một phương pháp hợp pháp. Ví dụ: nếu bạn chuyển hướng người dùng đến một trang nội bộ khi họ đã đăng nhập, bạn có thể sử dụng JavaScript để làm như vậy. Khi kiểm tra JavaScript hoặc các phương pháp chuyển hướng khác để đảm bảo trang web của bạn tuân thủ các nguyên tắc của chúng tôi, hãy xem xét mục đích. Hãy nhớ rằng chuyển hướng 301 là tốt nhất khi di chuyển trang web của bạn, nhưng bạn có thể sử dụng chuyển hướng JavaScript cho mục đích này nếu bạn không có quyền truy cập vào máy chủ của trang web của mình.

Sử dụng thẻ meta HTML

Một tùy chọn khác là sử dụng thẻ meta trong HTML của bạn:

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

Điều này sẽ khiến trình duyệt tải trang mới sau khi nó đã tải và diễn giải trang hiện tại, đồng thời không báo hiệu cho các công cụ tìm kiếm bất cứ điều gì. Tùy chọn tốt nhất luôn là sử dụng chuyển hướng 301 cấp máy chủ.

Tải xuống miễn phí của tôiSổ tay dành cho Người mới bắt đầu JavaScript


Các hướng dẫn js khác: