Trước khi tôi bắt đầu, jQuery là một thư viện JavaScript được sử dụng để thao tác DOM. Vì vậy, bạn không nên sử dụng jQuery để chuyển hướng trang.
Một trích dẫn từ Jquery.com:
Mặc dù jQuery có thể chạy mà không gặp sự cố lớn trong các phiên bản trình duyệt cũ hơn, chúng tôi không chủ động kiểm tra jQuery trong đó và thường không sửa các lỗi có thể xuất hiện trong chúng.
Nó được tìm thấy ở đây:
https://jquery.com/browser-support/
Vì vậy, jQuery không phải là một giải pháp cuối cùng và tất cả để tương thích ngược.
Giải pháp sau đây sử dụng JavaScript thô hoạt động trong tất cả các trình duyệt và đã được chuẩn trong một thời gian dài, do đó bạn không cần bất kỳ thư viện nào để hỗ trợ trình duyệt chéo.
Trang này sẽ chuyển hướng đến Google sau 3000 mili giây
<!DOCTYPE html>
<html>
<head>
<title>example</title>
</head>
<body>
<p>You will be redirected to google shortly.</p>
<script>
setTimeout(function(){
window.location.href="http://www.google.com"; // The URL that will be redirected too.
}, 3000); // The bigger the number the longer the delay.
</script>
</body>
</html>
Các tùy chọn khác nhau như sau:
window.location.href="url"; // Simulates normal navigation to a new page
window.location.replace("url"); // Removes current URL from history and replaces it with a new URL
window.location.assign("url"); // Adds new URL to the history stack and redirects to the new URL
window.history.back(); // Simulates a back button click
window.history.go(-1); // Simulates a back button click
window.history.back(-1); // Simulates a back button click
window.navigate("page.html"); // Same as window.location="url"
Khi sử dụng thay thế, nút quay lại sẽ không quay lại trang chuyển hướng, như thể nó chưa từng có trong lịch sử. Nếu bạn muốn người dùng có thể quay lại trang chuyển hướng thì hãy sử dụng window.location.href
hoặc window.location.assign
. Nếu bạn sử dụng một tùy chọn cho phép người dùng quay lại trang chuyển hướng, hãy nhớ rằng khi bạn vào trang chuyển hướng, nó sẽ chuyển hướng bạn quay lại. Vì vậy, hãy cân nhắc điều đó khi chọn một tùy chọn cho chuyển hướng của bạn. Trong điều kiện trang chỉ chuyển hướng khi người dùng thực hiện một hành động thì việc có trang trong lịch sử nút quay lại sẽ ổn. Nhưng nếu trang tự động chuyển hướng thì bạn nên sử dụng thay thế để người dùng có thể sử dụng nút quay lại mà không bị buộc quay lại trang mà chuyển hướng gửi.
Bạn cũng có thể sử dụng dữ liệu meta để chạy chuyển hướng trang như sau.
Làm mới META
<meta http-equiv="refresh" content="0;url=http://evil.com/" />
Địa điểm META
<meta http-equiv="location" content="URL=http://evil.com" />
Cướp bóc
<base href="http://evil.com/" />
Nhiều phương pháp khác để chuyển hướng khách hàng không nghi ngờ của bạn đến một trang mà họ có thể không muốn đi có thể được tìm thấy trên trang này (không phải một trong số họ phụ thuộc vào jQuery):
https://code.google.com.vn/p/html5security/wiki/RedirectionMethods
Tôi cũng muốn chỉ ra rằng, mọi người không muốn được chuyển hướng ngẫu nhiên. Chỉ chuyển hướng mọi người khi thực sự cần thiết. Nếu bạn bắt đầu chuyển hướng mọi người một cách ngẫu nhiên, họ sẽ không bao giờ truy cập trang web của bạn nữa.
Đoạn tiếp theo là giả thuyết:
Bạn cũng có thể được báo cáo là một trang web độc hại. Nếu điều đó xảy ra thì khi mọi người nhấp vào liên kết đến trang web của bạn, trình duyệt của người dùng có thể cảnh báo họ rằng trang web của bạn là độc hại. Điều cũng có thể xảy ra là các công cụ tìm kiếm có thể bắt đầu giảm xếp hạng của bạn nếu mọi người báo cáo trải nghiệm xấu trên trang web của bạn.
Vui lòng xem lại Nguyên tắc quản trị trang web của Google về các chuyển hướng:
https://support.google.com/webmastersals/2721217?hl=vi&ref_topic=6001971
Đây là một trang nhỏ thú vị đuổi bạn ra khỏi trang.
<!DOCTYPE html>
<html>
<head>
<title>Go Away</title>
</head>
<body>
<h1>Go Away</h1>
<script>
setTimeout(function(){
window.history.back();
}, 3000);
</script>
</body>
</html>
Nếu bạn kết hợp hai ví dụ trang với nhau, bạn sẽ có một vòng lặp định tuyến lại sẽ đảm bảo rằng người dùng của bạn sẽ không bao giờ muốn sử dụng trang web của bạn nữa.