1. Giới thiệu
Trong bài viết này, chúng tôi sẽ trình bày sự khác biệt giữa các phương thức location.replace , location.assign và location.href trong JavaScript. Tất cả ba lệnh này được sử dụng để chuyển hướng đến một trang web khác nhưng có tác động rất khác nhau đến lịch sử trình duyệt.
2. window.location.replace (url)
Phương thức Replace, sẽ thay thế trang hiện tại bằng một trang được cung cấp trong tham số đầu vào. Trang hiện tại sẽ không được lưu trong phiên, vì vậy bạn sẽ không thể quay lại lịch sử bằng nút ' Quay lại ' trong trình duyệt.
Có thể một ví dụ nhỏ sẽ làm rõ điều này:
Ví dụ
document.location.href = 'https://google.com'; // đi đến website google
document.location.href = 'https://thuexehagiang.com'; // đi đến thuexehagiang.com
document.location.replace('https://thuexehagiang.com/en/'); // thay thế bằng một trang web khác
Trong ví dụ trên, nhấn nút 'Quay lại' trên trình duyệt sẽ quay lại https://google.com vì url https://thuexehagiang.com đã được thay thế bằng https://thuexehagiang.com/en/ mà không lưu lịch sử.
3. window.location.assign (url)
Phương thức Assign, sẽ chuyển hướng đến URL đã cho nhưng nó sẽ lưu trong tài liệu gốc lịch sử, vì vậy bạn có thể điều hướng đến trang web trước đó bằng cách sử dụng nút ' Quay lại '.
Ví dụ
document.location.href = 'https://google.com'; // đi tới website google
document.location.href = 'https://thuexehagiang.com'; // đi tới trang chủ thuexehagiang.com
document.location.assign('https://thuexehagiang.com/en/'); // tải một trang mới
Trong ví dụ trên, nhấn nút ' Quay lại ' sẽ chuyển hướng điều hướng đến ' https://thuexehagiang.com ' vì phương thức gán sẽ không xóa trang gốc khỏi lịch sử.
4. window.location.href = url;
Sử dụng location.href để chuyển hướng đến tài liệu khác cũng sẽ giữ lịch sử trình duyệt giống như phương thức gán .
5. Kết luận
Bài viết này cho thấy sự khác biệt giữa ba phương pháp chuyển hướng trong JavaScript: location.replace
, location.assign
và location.href
.
Để mô phỏng nhấp chuột của người dùng, hãy sử dụng phương thức location.assign()
hoặc thuộc tính location.href
, điều này sẽ giữ toàn bộ lịch sử trình duyệt.
Nếu bạn muốn mô phỏng chuyển hướng HTTP, hãy sử dụng location.replace()
- điều này sẽ thay thế mục trước đó trong lịch sử phiên trình duyệt của bạn.