ฉันมี URL ที่เป็นเหมือน:
www.example.com/task1/1.3.html#a_1
ฉันจะรับa_1
ค่าจุดยึดโดยใช้ jQuery และเก็บไว้เป็นตัวแปรได้อย่างไร
ฉันมี URL ที่เป็นเหมือน:
www.example.com/task1/1.3.html#a_1
ฉันจะรับa_1
ค่าจุดยึดโดยใช้ jQuery และเก็บไว้เป็นตัวแปรได้อย่างไร
คำตอบ:
คุณสามารถใช้.indexOf()
และ.substring()
เช่นนี้:
var url = "www.aaa.com/task1/1.3.html#a_1";
var hash = url.substring(url.indexOf("#")+1);
คุณสามารถลองได้ที่นี่ถ้าไม่มี#
ในให้ลองทำif(url.indexOf("#") != -1)
ดังนี้:
var url = "www.aaa.com/task1/1.3.html#a_1", idx = url.indexOf("#");
var hash = idx != -1 ? url.substring(idx+1) : "";
หากนี่คือURL ของหน้าปัจจุบันคุณสามารถใช้window.location.hash
เพื่อรับมันและแทนที่#
หากคุณต้องการ
url.split("#").pop()
- ช้ากว่า แต่ง่ายกว่า
สำหรับหน้าต่างปัจจุบันคุณสามารถใช้สิ่งนี้:
var hash = window.location.hash.substr(1);
ในการรับค่าแฮชของหน้าต่างหลักใช้สิ่งนี้:
var hash = window.top.location.hash.substr(1);
หากคุณมีสตริงที่มี URL / แฮชวิธีที่ง่ายที่สุดคือ:
var url = 'https://www.stackoverflow.com/questions/123/abc#10076097';
var hash = url.split('#').pop();
หากคุณใช้ jQuery ให้ใช้สิ่งนี้:
var hash = $(location).attr('hash');
var hash = window.location.hash.substr(1);
เนื่องจาก JS มีทั้งฟังก์ชันย่อย / ซับสตริงจึงแตกต่างกัน แต่ในกรณีนี้จะเหมือนกัน
ใช้
window.location.hash
เพื่อดึงข้อมูลทุกอย่างที่เกินและรวมถึง #
location.hash.slice(1)
ถ้าคุณไม่ต้องการแฮชแท็กในสตริงสุดท้าย!
สไตล์ jQuery:
$(location).attr('hash');
คุณสามารถใช้ต่อไปนี้ "เคล็ดลับ" ที่จะแยกใด ๆ URL ที่ถูกต้อง ใช้ประโยชน์จากคุณสมบัติที่เกี่ยวข้องกับ href พิเศษขององค์ประกอบของจุดยึด , hash
.
function getHashFromUrl(url){
return $("<a />").attr("href", url)[0].hash.replace(/^#/, "");
}
getHashFromUrl("www.example.com/task1/1.3.html#a_1"); // a_1
function getHashFromUrl(url){
var a = document.createElement("a");
a.href = url;
return a.hash.replace(/^#/, "");
};
getHashFromUrl("www.example.com/task1/1.3.html#a_1"); // a_1
หากคุณมีสตริง url ธรรมดา (ดังนั้นจึงไม่มีแอตทริบิวต์ hash) คุณสามารถใช้นิพจน์ทั่วไปได้:
var url = "www.example.com/task1/1.3.html#a_1"
var anchor = url.match(/#(.*)/)[1]
window.top.location.hash
แทน