वर्तमान पृष्ठ से जावास्क्रिप्ट का उपयोग करके होस्ट url कैसे प्राप्त करें


180

यह देखते हुए कि मैं निम्नलिखित पृष्ठ पर हूँ:

http://www.webmail.com/pages/home.aspx

मैं "http://www.webmail.com"जावास्क्रिप्ट के साथ होस्ट नाम ( ) कैसे प्राप्त कर सकता हूं ?


जवाबों:


316
var host = window.location.hostname;

या संभवतः

var host = "http://"+window.location.hostname;

या यदि आप संघटन पसंद करते हैं

var protocol = location.protocol;
var slashes = protocol.concat("//");
var host = slashes.concat(window.location.hostname);

3
शायद httpहालांकि निर्दिष्ट नहीं है । सापेक्ष प्रोटोकॉल का उपयोग करें। हार्ड-कोडिंग से अधिक उपयुक्त हो सकता है।
डार एग्रीशियस

32
Hostname के बजाय window.location.host का उपयोग करें, या यह विफल हो जाएगा यदि पोर्ट 80 नहीं है।
स्टीफन स्टीगर

1
@MattBrowne जब मैं एक स्ट्रिंग का उत्पादन करूँगा उसके साथ काम करते समय मैं कहूंगा कि आपको हमेशा उपयोग करना चाहिए concat। उदाहरण में var a = 1 + 2 + " should be 12";इसका संक्षिप्त संस्करण बनाम var a = "".concat(1).concat(2).concat(" should be 12");। कॉनकैट का उपयोग करने से आपको बहुत परेशानी होगी +, गणना के लिए है, न कि कॉन्टैक्शन।
एरिक हेर्लिट्ज़

3
hostnameकेवल डोमेन hostदेगा और पोर्ट भी प्रदान करेगा। यह लिंक एनाटॉमी bl.ocks.org/abernier/3070589
लुकास लेइसिस

4
window.location.origin बहुत अच्छा काम करता है - इसमें प्रोटोकॉल और पोर्ट शामिल हैं।
rothchild86

95

होस्टनाम प्राप्त करने के लिए: location.hostname

लेकिन आपका उदाहरण योजना के लिए भी देख रहा है, इसलिए ऐसा location.originलगता है कि आप क्रोम में क्या चाहते हैं, लेकिन मोजदेव डॉक्स में इसका उल्लेख नहीं है। आप इसके साथ निर्माण कर सकते हैं

location.protocol + '//' + location.hostname

यदि आप पोर्ट नंबर भी चाहते हैं (जब वह 80 वर्ष का नहीं है) तब:

location.protocol + '//' + location.host

फ़ायरफ़ॉक्स 4 में ऐसा प्रतीत नहीं होता है, हालाँकि Chrome 12 करता है। क्या इसे एक विनिर्देश में परिभाषित किया गया है?
डेलन अजाबनी

हाय. पोर्ट के लिए, उदाहरण एक आकर्षण की तरह काम किया..इसके लिए धन्यवाद
कार्तिक k

: एफएफ का समर्थन करता है के बाद से 21.0 location.origin developer.mozilla.org/en-US/docs/Web/API/Window.location
zifot

67

आप इसका उपयोग कर प्रोटोकॉल, होस्ट और पोर्ट प्राप्त कर सकते हैं:

window.location.origin

ब्राउज़र संगतता

डेस्कटॉप

| Chrome                           | Edge  | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit)                            |
|----------------------------------|-------|-----------------|-------------------|-------|--------------------------------------------|
| (Yes)                            | (Yes) | (Yes)           | (Yes)             | (Yes) | (Yes)                                      |
| 30.0.1599.101 (possibly earlier) | ?     | 21.0 (21.0)     | 11                | ?     | 7 (possibly earlier, see webkit bug 46558) |

मोबाइल

| Android                          | Edge  | Firefox Mobile (Gecko) | IE Phone | Opera Mobile | Safari Mobile                              |
|----------------------------------|-------|------------------------|----------|--------------|--------------------------------------------|
| (Yes)                            | (Yes) | (Yes)                  | (Yes)    | (Yes)        | (Yes)                                      |
| 30.0.1599.101 (possibly earlier) | ?     | 21.0 (21.0)            | ?        | ?            | 7 (possibly earlier, see webkit bug 46558) |

सभी ब्राउज़र संगतता मोज़िला डेवलपर नेटवर्क से है


4
मुझे उल्लेख करना चाहिए IE इस का समर्थन नहीं करता है।
मानसो

कृपया उल्लेख करें कि यह एक नई सुविधा है और पुराने ब्राउज़रों द्वारा समर्थित नहीं है।
कबीरबैद्य

@kabirbaidhya कैसे क्रिया अनुकूलता के बारे में!
मानसो

अच्छा। लेकिन क्या होता है जब एमडीएन लोग ब्राउज़र संगतता तालिका को अपडेट करते हैं, जो नए ब्राउज़र रिलीज़ के साथ अक्सर होता है। आपको उनकी तालिका के साथ सिंक करने के लिए इसे अपडेट करने की आवश्यकता हो सकती है;)।
kabirbaidhya

वास्तव में नहीं, यह सबसे नवीनतम संस्करण है जो इसे नवीनतम और सभी ब्राउज़रों को देखने के लिए समर्थन करता है जो पहले से ही इसका समर्थन करते हैं। यह केवल तभी बदलेगा जब वे दूसरे ब्राउज़र को शामिल करने का निर्णय ले सकते हैं, कुछ समर्थित ब्राउज़रों पर संस्करण संख्याओं का पता लगा सकते हैं, जो कि कुछ नया है क्योंकि अधिकांश नए उनके प्रारंभिक रिलीज से हैं।
मानसो



5

अपनी आवश्यकताओं के आधार पर, आप window.locationगुणों में से एक का उपयोग कर सकते हैं । अपने प्रश्न में आप मेजबान के बारे में पूछ रहे हैं , जिसे window.location.hostname(जैसे www.example.com) का उपयोग करके पुनर्प्राप्त किया जा सकता है । अपने उदाहरण में आप कुछ दिखा रहे हैं जिसे मूल कहा जाता है , जिसे window.location.origin(जैसे http://www.example.com) का उपयोग करके पुनर्प्राप्त किया जा सकता है ।

var path = window.location.origin + "/";

//result = "http://localhost:60470/"

2

मुझे यह एक उद्देश्य पर निर्भर करता है

window.location.href.split("/")[2] == "localhost:17000" //always domain + port

आप इसे किसी भी url-string पर लगा सकते हैं

var url = "http://localhost:17000/sub1/sub2/mypage.html?q=12";
url.split("/")[2] == "localhost:17000"
url.split("/")[url.split("/").length-1] == "mypage.html?q=12"

प्रोटोकॉल, डोमेन और पथ को url-string (सापेक्ष पथ) से हटाना

var arr = url.split("/");
if (arr.length>3)
   "/" + arr.splice(3, arr.length).join("/") == "/sub1/sub2/mypage.html?q=12"
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.