วิธีที่ต้องการใช้ในการเปลี่ยนตำแหน่งของเว็บเพจปัจจุบันโดยใช้ JavaScript คืออะไร ฉันเห็นทั้ง window.navigate และ document.location ใช้แล้ว มีความแตกต่างในพฤติกรรมหรือไม่? มีความแตกต่างในการใช้งานเบราว์เซอร์หรือไม่?
วิธีที่ต้องการใช้ในการเปลี่ยนตำแหน่งของเว็บเพจปัจจุบันโดยใช้ JavaScript คืออะไร ฉันเห็นทั้ง window.navigate และ document.location ใช้แล้ว มีความแตกต่างในพฤติกรรมหรือไม่? มีความแตกต่างในการใช้งานเบราว์เซอร์หรือไม่?
คำตอบ:
window.location.href = 'URL';
เป็นการใช้งานมาตรฐานสำหรับการเปลี่ยนตำแหน่งของหน้าต่างปัจจุบัน
window.location.href
เป็นการใช้งานที่สมบูรณ์ แต่ก็ window.location
ทำสิ่งเดียวกันให้สำเร็จ ดูdocs.sun.com/source/816-6408-10/location.htm : "ถ้าคุณกำหนดสตริงให้กับlocation
คุณสมบัติของวัตถุ JavaScript จะสร้างlocation
วัตถุและกำหนดสตริงนั้นให้กับhref
คุณสมบัติ"
window.location
แต่ที่ไม่จำเป็นต้องระบุทั้งทาง: developer.mozilla.org/en/window.location
window.location.href = 'URL';
และwindow.location.assign('URL');
วิธีที่ออกแบบมาสำหรับการโหลดหน้าใหม่ ข้อมูลเพิ่มเติมสามารถพบได้w3schools.com/jsref/obj_location.asp
window.navigate
เป็นวิธีการที่เป็นกรรมสิทธิ์ซึ่งใช้โดย Internet Explorer (ฉันทราบว่าเบราว์เซอร์อื่นเลียนแบบเพื่อความเข้ากันได้หรือไม่ Chrome ไม่ได้) document.location
หรือwindow.location
เป็นวัตถุมาตรฐาน (ดูข้อกำหนด HTML / HTML5 / DOM ต่างๆ) document.location = someURL
(หรือwindow.location = someURL
) อาจได้รับการสนับสนุนเนื่องจากรหัสดั้งเดิม วิธีการที่เหมาะสมที่จะทำคือหรือบางทีอาจจะdocument.location.href = someURL
document.location.assign(someURL)
window.navigate ไม่รองรับในบางเบราว์เซอร์
ในจาวาสคริปต์มีหลายวิธีสำหรับการเปลี่ยนเส้นทางดูรหัสด้านล่างและคำอธิบาย
window.location.href = "http://krishna.developerstips.com/";
window.location = "http://developerstips.com/";
window.location.replace("http://developerstips.com/");
window.location.assign("http://work.developerstips.com/");
window.location.hrefโหลดหน้าเว็บจากแคชของเบราว์เซอร์และไม่ได้ส่งคำขอไปยังเซิร์ฟเวอร์ทุกครั้ง ดังนั้นหากคุณมีหน้าเก่าในแคชแล้วมันจะเปลี่ยนเส้นทางไปที่นั่นแทนการโหลดหน้าสดจากเซิร์ฟเวอร์
window.location.assign ()วิธีการเปลี่ยนเส้นทางหากคุณต้องการอนุญาตให้ผู้ใช้ใช้ปุ่มย้อนกลับเพื่อกลับไปที่เอกสารต้นฉบับ
window.location.replace ()วิธีการถ้าคุณต้องการที่จะเปลี่ยนเส้นทางไปยังหน้าใหม่และไม่อนุญาตให้ผู้ใช้นำทางไปยังหน้าเดิมโดยใช้ปุ่มย้อนกลับ
document.locatio n คือ (เลิก แต่ยังคงปัจจุบัน) อ่านอย่างเดียวคุณสมบัติสตริงแทนที่ด้วยdocument.url
window.location
มีผลกับเฟรมด้วยเช่นกัน
แบบฟอร์มที่ดีที่สุดที่ฉันพบคือ:
parent.window.location.href
และที่แย่กว่านั้นคือ:
parent.document.URL
ฉันทำการทดสอบเบราว์เซอร์ครั้งใหญ่และ IE ที่หายากที่มีปลั๊กอินหลายอันไม่ได้กำหนดด้วยรูปแบบที่สอง
window.location
จะส่งผลต่อเป้าหมายเบราว์เซอร์ของคุณ document.location จะมีผลกับเบราว์เซอร์และเฟรม / iframe ของคุณเท่านั้น
window.navigate
ไม่รองรับในบางเบราว์เซอร์ดังนั้นจึงควรหลีกเลี่ยง วิธีอื่นใดที่ใช้คุณสมบัติตำแหน่งเป็นวิธีที่เชื่อถือได้และสอดคล้องกันมากที่สุด
window.location = "http://...";
ฉันไปกับ ฉันได้รับการเข้ารหัส JavaScript ข้ามเบราว์เซอร์เป็นเวลาสองสามปีและฉันไม่เคยประสบปัญหาในการใช้วิธีการนี้
window.navigate
และwindow.location.href
ดูเหมือนแปลกสำหรับฉัน
มีความแตกต่างไม่ได้จริงๆ; มีวิธีการทำแตกต่างกันประมาณ 5 วิธี แต่คนที่ผมเห็นส่วนใหญ่มักจะเป็นdocument.location
และwindow.location
เพราะพวกเขากำลังได้รับการสนับสนุนจากเบราว์เซอร์ที่สำคัญทั้งหมด (ฉันไม่เคยเห็นwindow.navigate
รหัสส่วนตัวที่ใช้ในการผลิตดังนั้นอาจจะไม่ได้รับการสนับสนุนที่ดีมาก?)
การสนับสนุนdocument.location
ก็ดีแม้ว่ามันจะเป็นวิธีที่เลิกใช้แล้ว ฉันใช้วิธีนี้มาระยะหนึ่งแล้วโดยไม่มีปัญหา คุณสามารถดูรายละเอียดเพิ่มเติมได้ที่นี่:
https://developer.mozilla.org/en-US/docs/Web/API/document.location
คุณสามารถย้ายหน้าของคุณโดยใช้
window.location.href =Url;