मुझे एक URL से टुकड़ा पहचानकर्ता (हैश # के बाद मान) कैसे मिलेगा?


212

उदाहरण:

www.site.com/index.php#hello

JQuery का उपयोग करते हुए, मैं मान helloको एक चर में रखना चाहता हूं :

var type = 

मैं अनिश्चित हूं, क्या इस सवाल को jQuery के रूप में टैग किया जाना चाहिए और इसके बारे में पूछना चाहिए। अधिकांश जवाब जेएसई के बिना जेएस पर लागू होते हैं और यह एक अच्छा डूप लक्ष्य जैसा लगता है।
user4642212

जवाबों:


585

JQuery के लिए कोई ज़रूरत नहीं है

var type = window.location.hash.substr(1);

154
पर्याप्त नहीं jQuery! (बस मजाक कर रहे हैं: +1)
nnnnnn

2
मैंने अभी सीखा कि एक # 'हैश' के रूप में इस्तेमाल किया जा सकता है जो जावास्क्रिप्ट में एक पहचानकर्ता / कीवर्ड के रूप में काम करता है। विस्मयकारी
Clain Dsilva

13
आप इसका उपयोग भी कर सकते हैं जिसके .slice(1)बजाय .substr(1)प्रदर्शन में मामूली वृद्धि की पेशकश करनी चाहिए, हालांकि इससे वास्तविक जीवन में कोई फर्क नहीं पड़ता है।
devius

3
OMG, किसी भी ध्यान देने योग्य अंतर बनाने के लिए आपको कितनी बार url हैश की जाँच करने की आवश्यकता होगी? दस लाख? 'मामूली वृद्धि' इस संदर्भ में एक बहुत बड़ा नुकसान है। :-)
कोनराड

37

आप निम्नलिखित कोड का उपयोग करके ऐसा कर सकते हैं:

var url = "www.site.com/index.php#hello";
var hash = url.substring(url.indexOf('#')+1);
alert(hash);

डेमो देखें



4
@SchalkKeun सौभाग्य से, अब '18 में यह लगभग चला गया है। लेकिन जिन लोगों को अभी भी उस किंवदंती से निपटना है, उन्हें इसके बारे में पता होना चाहिए।
सेबेस्टियन ऑर्डेलमैन

6
ईमानदार होने के लिए, IE8 बहुत असुरक्षित है, सभी भुगतान गेटवे मूल रूप से अगले सप्ताह (30 जून 2018) TLS 1.2 का समर्थन नहीं करने वाले किसी भी ब्राउज़र को छोड़ने जा रहे हैं, आप उनसे भुगतान नहीं कर पाएंगे। ताकि इन सभी पुराने गंदे ब्राउज़रों को किसी ईकॉमर्स क्लाइंट के लिए बेकार बना दिया जाए।
स्काल्क केयुन

13
var url ='www.site.com/index.php#hello';
var type = url.split('#');
var hash = '';
if(type.length > 1)
  hash = type[1];
alert(hash);

Jsfiddle पर कार्यशील डेमो


ifबयान के छोटा किया जा सकता var hash = type[1] || "";
user4642212

7

URL से हैश (#) के बाद मान प्राप्त करने के लिए निम्न जावास्क्रिप्ट का उपयोग करें। आपको उसके लिए jQuery का उपयोग करने की आवश्यकता नहीं है।

var hash = location.hash.substr(1);

मुझे यह कोड और ट्यूटोरियल यहाँ से मिला है - जावास्क्रिप्ट का उपयोग करके URL से हैश मान कैसे प्राप्त करें



6

यह बहुत आसान है। नीचे दिए गए कोड का प्रयास करें

$(document).ready(function(){
  var hashValue = location.hash.replace(/^#/, '');  
  //do something with the value here  
});

3
var hashValue = location.hash.replace (/ ^ # /, '');
फ्लकेरिमी

3

AK के कोड के आधार पर, यहाँ एक हेल्पर फंक्शन है। JS Fiddle यहाँ ( http://jsfiddle.net/M5vsL/1/ ) ...

// Helper Method Defined Here.
(function (helper, $) {
    // This is now a utility function to "Get the Document Hash"
    helper.getDocumentHash = function (urlString) {
        var hashValue = "";

        if (urlString.indexOf('#') != -1) {
            hashValue = urlString.substring(parseInt(urlString.indexOf('#')) + 1);
        }
        return hashValue;
    };
})(this.helper = this.helper || {}, jQuery);
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.