JQuery का उपयोग करके URL से लंगर कैसे प्राप्त करें?


184

मेरे पास एक URL है जो इस प्रकार है:

www.example.com/task1/1.3.html#a_1

मैं a_1jQuery का उपयोग करके लंगर मूल्य कैसे प्राप्त कर सकता हूं और इसे एक चर के रूप में संग्रहीत कर सकता हूं ?

जवाबों:


206

आप उपयोग कर सकते हैं .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इसे प्राप्त करने के लिए उपयोग कर सकते हैं, और #यदि आप चाहें तो प्रतिस्थापित कर सकते हैं।


10
कृपया ध्यान दें: iFrame के अंदर से मुख्य विंडो का हैश मान प्राप्त करने के लिए, आपको window.top.location.hashइसके बजाय उपयोग करना होगा ।
— पाओलो स्टीफन

1
url.split("#").pop() - धीमी लेकिन आसान।
— Ifch0o1

489

के लिए वर्तमान विंडो , तो आप इस का उपयोग कर सकते हैं:

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');

1
सुरुचिपूर्ण उत्तर। क्या ऐसे कोई मामले हैं जिनमें यह काम नहीं करता है?
— sscirrus

2
शॉर्टकट संस्करण - var hash = window.location.hash.substr(1);जेएस के कारण दोनों ही प्रकार के पदार्थ / प्रतिस्थापन कार्य हैं, वे अलग-अलग हैं, लेकिन इस मामले में समान हैं।
— आर्थर कुशमैन

इसके बदलावों पर नज़र रखने का सबसे अच्छा तरीका क्या है, यानी। किसी ने इनर-पेज लिंक क्लिक किया है?
— रिड इकुलस

5
@RidIculous इसे आज़माएँ: $ (विंडो) .on ('हैशचेंज', फंक्शन () {$ ('h1')। टेक्स्ट (स्थान.शश (1));});
— सिल्वियो डेलगाडो

71

उपयोग

window.location.hash

# से परे और सब कुछ प्राप्त करने के लिए


15
location.hash.slice(1)यदि आप अंतिम स्ट्रिंग में हैश टैग नहीं चाहते तो उपयोग करना याद रखें !
— सैंडी गिफ्फोर्ड

39

jQuery शैली:

$(location).attr('hash');

7
प्रत्येक जावास्क्रिप्ट समस्या को jquery के साथ हल करने की आवश्यकता नहीं है।
— 17

22
@ डॉक्सिन मैं सहमत हूं लेकिन सवाल यह है कि "jQuery का उपयोग करके URL से लंगर कैसे प्राप्त करें?"
— वैलेंटाइन ई

10

आप किसी भी मान्य URL को पार्स करने के लिए निम्न "ट्रिक" का उपयोग कर सकते हैं । यह लंगर तत्व के विशेष href- संबंधित संपत्ति का लाभ उठाता है hash।

JQuery के साथ

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

3

यदि आपके पास बस एक सादा url स्ट्रिंग है (और इसलिए हैश विशेषता नहीं है) तो आप एक नियमित अभिव्यक्ति का भी उपयोग कर सकते हैं:

var url = "www.example.com/task1/1.3.html#a_1"  
var anchor = url.match(/#(.*)/)[1] 

1
यह जाँचने की आवश्यकता है कि मैच इसके दूसरे तत्व तक पहुंचने से पहले परिणाम प्राप्त करता है, या यह कोड त्रुटि करेगा यदि यूआरएल में कोई एंकर नहीं है।
— रिचर्ड गार्साइड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.