2009-06-04 15 views

Trả lời

186
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.

+18

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

+5

@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ó. " –

+2

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. –

1

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.locationwindow.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?)

+0

document.location không hoạt động trong tất cả các trình duyệt. window.location không. –

+4

Hmm, phù hợp với tôi. Trình duyệt nào không hoạt động? –

+2

Firefox không hỗ trợ window.navigate –

2

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.navigatewindow.location.href có vẻ hơi lạ với tôi.

+13

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. –

+16

Nhưng mọi thứ trong JavaScript là một đối tượng :) – roosteronacid

+1

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

6

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.

6

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.

5

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.

+0

Bởi logic đó, sẽ không top.window.location.href được tốt hơn? – Orwellophile

4

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

-4

Bạn có thể di chuyển trang web của bạn sử dụng

window.location.href =Url; 
+2

Đ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 ... –

+3

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

Các vấn đề liên quan