window.location.href และ window.open () วิธีการใน JavaScript


271

ความแตกต่างระหว่างwindow.location.hrefและwindow.open ()วิธีการใน JavaScript คืออะไร?


คำตอบ:


510

window.location.hrefคือไม่ได้วิธีการที่มันเป็นคุณสมบัติที่จะบอกคุณตั้ง URL ปัจจุบันของเบราว์เซอร์ การเปลี่ยนค่าของคุณสมบัติจะเปลี่ยนเส้นทางหน้า

window.open()เป็นวิธีการที่คุณสามารถส่ง URL ไปยังที่คุณต้องการเปิดในหน้าต่างใหม่ ตัวอย่างเช่น:

ตัวอย่าง window.location.href:

window.location.href = 'http://www.google.com'; //Will take you to Google.

ตัวอย่าง window.open ():

window.open('http://www.google.com'); //This will open Google in a new window.

ข้อมูลเพิ่มเติม:

window.open()สามารถส่งผ่านพารามิเตอร์เพิ่มเติม ดู: window.open บทช่วยสอน


5
มาตรฐานอาจกล่าวได้ว่าwindow.location.hrefเป็นคุณสมบัติไม่ใช่วิธีการ แต่ Internet Explorer (อย่างน้อยรุ่น 10) ช่วยให้คุณสามารถใช้hrefเป็นวิธีการได้เช่นกัน ฉันเคยเห็นมันใช้งานได้เฉพาะใน IE10 บนหนึ่งหน้าฉันเคยใช้ นั่นอาจเป็นสาเหตุที่ผู้ถามเรียกhrefวิธีการ ดูคำถามincompatability IE กับ window.location.href แต่ใช่มันจะดีกว่าที่จะใช้hrefเป็นสถานที่ให้บริการซึ่งจะทำงานในเบราว์เซอร์ใด ๆรวมทั้ง IE
Rory O'Kane

5
@ RoryO'Kane คำถามนี้ถูกถามในปี 2011 ฉันสงสัยว่าผู้ใช้หมายถึง IE 10
James Hill

9
จริง แต่ฉันคิดว่ามันน่าจะถึงแม้ว่าจะไม่แน่นอน IE รุ่นเก่าwindow.location.hrefนั้นก็ใช้วิธีเดียวกัน ท้ายที่สุดแล้วรุ่นใหม่ของ iE มักจะได้รับมาตรฐานมากขึ้นไม่น้อย ดังนั้นหาก IE10 ยังคงทำลายมาตรฐานอยู่ดังนั้นรุ่นที่เก่ากว่าก็อาจทำเช่นกัน
Rory O'Kane

32
  • window.open จะเปิดเบราว์เซอร์ใหม่ด้วย URL ที่ระบุ

  • window.location.href จะเปิด URL ในหน้าต่างซึ่งมีรหัสเรียก

ยังทราบว่าwindow.open()เป็นฟังก์ชั่นบนวัตถุหน้าต่างของตัวเองในขณะที่window.locationเป็นวัตถุที่ exposes ความหลากหลายของวิธีการอื่น ๆ และคุณสมบัติ


14

window.openเป็นวิธีการ; คุณสามารถเปิดหน้าต่างใหม่และสามารถปรับแต่ง window.location.href เป็นเพียงคุณสมบัติของหน้าต่างปัจจุบัน


12

มีคำตอบอยู่แล้วซึ่งอธิบายเกี่ยวกับวิธีwindow.location.hrefและwindow.open ()วิธีการ

ฉันจะใช้ตามวัตถุประสงค์:

1. การเปลี่ยนเส้นทางไปยังหน้าอื่น

ใช้ window.location.href ตั้งค่าคุณสมบัติ href เป็น href ของหน้าอื่น

2. เปิดลิงก์ในหน้าต่างใหม่หรือหน้าต่างเฉพาะ

ใช้ window.open () ผ่านพารามิเตอร์ตามเป้าหมายของคุณ

3. รู้ที่อยู่ปัจจุบันของหน้า

ใช้ window.location.href รับค่าคุณสมบัติ window.location.href นอกจากนี้คุณยังสามารถรับโพรโทคอลชื่อโฮสต์ hashstring จากวัตถุ window.location

ดูที่วัตถุที่ตั้งสำหรับข้อมูลเพิ่มเติม


9

window.open ()จะเปิดหน้าต่างใหม่ในขณะที่window.location.hrefจะเปิด URL ใหม่ในหน้าต่างปัจจุบันของคุณ


window.open () สามารถเปิด 'url' ในหน้าต่างเดียวกันได้หาก '_self' ถูกส่งเป็นพารามิเตอร์เพิ่มเติม
user761100

1

window.openจะเปิด URL ในเบราว์เซอร์ใหม่แท็บ

The window.location.hrefwill open url ในแท็บปัจจุบัน (คุณสามารถใช้แทนlocation)

นี่คือตัวอย่างซอ (ในหน้าต่างตัวอย่างเพื่อเปิดไม่ทำงาน)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.