Phương pháp ưa thích để sử dụng để thay đổi vị trí của trang web hiện tại bằng cách sử dụng JavaScript là gì? Tôi đã nhìn thấy cả window.navigate và document.location được sử dụng. Có bất kỳ sự khác biệt trong hành vi? Có sự khác biệt trong triển khai trình duyệt không?Tôi có nên sử dụng window.navigate hoặc document.location trong JavaScript không?
Trả lời
window.location.href = 'URL';
là cách triển khai chuẩn để thay đổi vị trí của cửa sổ hiện tại.
Thực sự không có sự khác biệt; có khoảng 5 phương pháp khác nhau để thực hiện nó. Tuy nhiên, những cái tôi thấy thường xuyên nhất là document.location
và window.location
vì chúng được tất cả các trình duyệt chính hỗ trợ. (Cá nhân tôi chưa bao giờ thấy window.navigate
được sử dụng trong mã sản xuất, vì vậy có thể nó không có hỗ trợ rất tốt?)
document.location không hoạt động trong tất cả các trình duyệt. window.location không. –
Hmm, phù hợp với tôi. Trình duyệt nào không hoạt động? –
Firefox không hỗ trợ window.navigate –
Tôi muốn đi với window.location = "http://...";
. Tôi đã mã hóa JavaScript trình duyệt chéo trong một vài năm và tôi chưa bao giờ gặp phải sự cố khi sử dụng phương pháp này.
window.navigate
và window.location.href
có vẻ hơi lạ với tôi.
các công trình window.location, nhưng về mặt kỹ thuật không chính xác vì "vị trí" là một đối tượng. –
Nhưng mọi thứ trong JavaScript là một đối tượng :) – roosteronacid
Trong khi khá nhiều thứ là một đối tượng trong JavaScript, việc gán một chuỗi cho một đối tượng thường không đặt giá trị cho một trong các thuộc tính của nó (như window.location hoặc document.location làm với href), nhưng thay vào đó thay thế đối tượng bằng một chuỗi. Trong trường hợp này, một quirk trình duyệt đã được thêm vào để tương thích với hiện tại (kỳ quặc) triển khai và di sản (và không phải là di sản) nội dung. – PhistucK
document.locatio n là thuộc tính chuỗi chỉ đọc (không được chấp nhận nhưng vẫn hiện diện), được thay thế bằng document.url.
window.location
sẽ ảnh hưởng đến mục tiêu trình duyệt của bạn. document.location sẽ chỉ ảnh hưởng đến trình duyệt và khung/iframe của bạn.
window.location
cũng ảnh hưởng đến khung hình,
hình thức tốt nhất tôi tìm thấy là:
parent.window.location.href
Và tồi tệ hơn là:
parent.document.URL
Tôi đã làm một bài kiểm tra trình duyệt lớn, và một số IE hiếm có với một số bổ sung có được không xác định với hình thức thứ hai.
Bởi logic đó, sẽ không top.window.location.href được tốt hơn? – Orwellophile
window.navigate
KHÔNG được hỗ trợ trong một số trình duyệt, vì vậy bạn nên tránh. Bất kỳ phương pháp nào khác sử dụng thuộc tính vị trí là cách tiếp cận đáng tin cậy và nhất quán nhất
hỗ trợ cho document.location
cũng tốt mặc dù phương pháp không dùng nữa. Tôi đã sử dụng phương pháp này trong một thời gian mà không gặp vấn đề gì. bạn có thể tham khảo ở đây để biết thêm chi tiết:
https://developer.mozilla.org/en-US/docs/Web/API/document.location
Bạn có thể di chuyển trang web của bạn sử dụng
window.location.href =Url;
Điều này không thực sự thêm thông tin sau đó được chấp nhận, và nhân lên câu trả lời ... –
Bạn thậm chí có thể đi xa hơn và lập luận rằng bạn đã chỉ đơn giản là đạo văn câu trả lời được chấp nhận – Liam
- 1. Tôi có nên sử dụng đa hình trong javascript không?
- 2. Tôi có nên sử dụng getHours() hoặc getUTCHours cho Javascript của tôi không?
- 3. Tôi có nên sử dụng AppDomain.CurrentDomain.BaseDirectory hoặc System.Environment.CurrentDirectory không?
- 4. Tôi có nên sử dụng bí danh hoặc alias_method không?
- 5. Tôi có nên sử dụng int hoặc UInt16 không?
- 6. Tôi có nên sử dụng đôi hoặc nổi không?
- 7. Numpy: Tôi có nên sử dụng newaxis hoặc Không?
- 8. Tôi có nên sử dụng byte hoặc int không?
- 9. Tôi có nên sử dụng em hoặc px không?
- 10. tôi có nên sử dụng urandom hoặc openssl_random_pseudo_bytes không?
- 11. Tôi có nên sử dụng eval() hoặc call_user_func() không?
- 12. Tôi có nên sử dụng Phobos hoặc Tango không?
- 13. Tôi muốn sử dụng NumPy/SciPy. Tôi có nên sử dụng Python 2 hoặc 3 không?
- 14. Tôi có nên sử dụng jQuery.each() không?
- 15. Tôi có nên sử dụng ProGuard không?
- 16. Tôi có nên sử dụng HttpRuntime.Cache không?
- 17. Tôi có nên sử dụng DataInputStream hoặc BufferedInputStream
- 18. Tôi nên sử dụng IEnumerable hoặc IList?
- 19. Tôi có nên sử dụng @EJB hoặc @Inject
- 20. Tôi có nhiệm vụ Rails: tôi có nên sử dụng tập lệnh/runner hoặc cào không?
- 21. Tôi có nên sử dụng QCoreApplication :: processEvents() hoặc QApplication :: processEvents()?
- 22. Tôi có nên sử dụng một LINQ DataContext hoặc nhiều?
- 23. Khi nào tôi nên sử dụng khung MVC trong JavaScript?
- 24. Tôi có nên sử dụng ipairs hoặc vòng lặp cho
- 25. Chúng ta có nên sử dụng tên dài hoặc viết tắt trong mã hóa JavaScript không?
- 26. Tôi có nên sử dụng `import os.path` hoặc` import os`?
- 27. Tôi có nên sử dụng nav hoặc ul
- 28. Tôi có nên sử dụng unset trong php __destruct() không?
- 29. Khi nào tôi nên sử dụng "nguyên mẫu" trong JavaScript
- 30. Khi nào tôi nên sử dụng Bảng chỉ mục của Oracle? Hoặc, khi tôi không nên?
Bạn có một tài liệu tham khảo để cho biết rằng các window.location.href là việc thực hiện tiêu chuẩn? Và tiêu chuẩn đó có áp dụng tốt cho tất cả các trình duyệt không? Bạn chắc chắn có vẻ hiểu biết và 15+ phiếu (cộng với câu trả lời được chấp nhận) giúp làm cho nó có thẩm quyền hơn, mặc dù tôi nghĩ tốt hơn là xem tài liệu từ các nhóm phát triển trình duyệt để sao lưu xác nhận quyền sở hữu. – Goyuix
@Goyuix, có thể chính xác hơn khi nói rằng 'window.location.href' là hoàn thành việc thực hiện, nhưng' window.location' hoàn thành cùng một điều. Xem http://docs.sun.com/source/816-6408-10/location.htm: "Nếu bạn gán một chuỗi cho thuộc tính' location' của một đối tượng, JavaScript sẽ tạo một đối tượng 'location' và gán chuỗi đó cho thuộc tính' href' của nó. " –
Có vẻ như những kẻ này đã quyết định sở thích cá nhân của nó: https://developer.mozilla.org/Talk:en/DOM/window.location. Hoặc xem ví dụ ở gần phía dưới, họ chỉ sử dụng 'window.location' nhưng điều đó không nhất thiết chỉ ra một trong hai cách: https://developer.mozilla.org/en/window.location. –