เพิ่มส่วนใน URL โดยไม่ทำให้เกิดการเปลี่ยนเส้นทาง?


คำตอบ:


171
window.location.hash = 'something';

นั่นเป็นเพียง JavaScript ธรรมดา

ความคิดเห็นของคุณ...

สวัสดีสิ่งที่ฉันต้องการจริงๆคือเพิ่มเฉพาะแฮช ... อะไรทำนองนี้: window.location.hash = '#';แต่ด้วยวิธีนี้ไม่มีอะไรเพิ่ม

ลองนี่ ...

window.location = '#';

นอกจากนี้อย่าลืมเกี่ยวกับwindow.location.replace()วิธีการ


สวัสดีสิ่งที่ฉันต้องการจริงๆคือเพิ่มแฮชเท่านั้น ... อะไรทำนองนี้ window.location.hash = '#'; แต่อย่างนี้ไม่มีอะไรเพิ่ม ..
ดี

27

สำหรับ HTML แบบตรงโดยไม่ต้องใช้ JavaScript:

<a href="#something">Add '#something' to URL</a>

หรือหากต้องการตอบคำถามของคุณอย่างแท้จริงให้เพิ่ม '#' ใน URL:

<a href="#">Add '#' to URL</a>

ไม่ถูกต้องเนื่องจากคุณต้องคลิกลิงก์เพื่อเปลี่ยนแฮช .. ดังนั้นคุณจึงขาดส่วน js ที่คุณทริกเกอร์ "คลิก" ..

@ Juan ทำไมเราต้อง "กระตุ้น" คลิก? คำถามเดิมถามว่าเราจะเพิ่ม#URL ได้อย่างไร การคลิกลิงก์ตามที่ฉันแนะนำจะทำให้สำเร็จ ไม่จำเป็นต้องใช้ JS
Jess Telford

1
คำตอบของคุณอธิบายวิธีสร้างลิงก์ที่เมื่อคลิกจะเพิ่มส่วนใน url คำถามจะถามถึงวิธีการเพิ่มส่วน ดังนั้นคำตอบของคุณจึงไม่มีการดำเนินการนั่นคือ "คลิก"
Juan

2
พอใช้ฉันเห็นคำถามถูกตีความแบบนั้น หวังว่าจะมีคนพบว่าตัวเลือกนี้มีประโยชน์สำหรับกรณีการใช้งานของพวกเขา
Jess Telford

6
window.location.hash = 'whatever';

5
#คำนำหน้าไม่จำเป็นต้องใช้
alex

@alex: อ่าฉันไม่แน่ใจเหมือนกันว่าจำเป็นหรือไม่ window.location.hash ส่งคืนแฮชด้วย # นำหน้าดังนั้นฉันจึงคิดว่ามันเป็น ขอขอบคุณสำหรับการชี้แจง. :)
Daniel Lo Nigro

4
ไม่ต้องกังวล - และมันทำให้คุณสงสัยว่าทำไมมันถึงกลับมาเสมอ
alex

0

ลองทำตามนี้

var URL = "scratch.mit.edu/projects";
var mainURL = window.location.pathname;

if (mainURL == URL) {
    mainURL += ( mainURL.match( /[\?]/g ) ? '&' : '#' ) + '_bypasssharerestrictions_';
    console.log(mainURL)
}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.