2010-07-16 8 views
6

मैं की तरहजावास्क्रिप्ट: विंडो प्राप्त करें। स्थान सबकुछ लेकिन मेजबान?

http://www.mydomain.com/hello/you

top.location.host साथ

, मैं "http://www.mydomain.com"

window.location.href साथ

मैं प्राप्त कर सकते हैं "http://www.mydomain.com/hello/you"

सिर्फ "/hello/you" प्राप्त करने के लिए एक मौका है प्राप्त कर सकते हैं ???

+0

यह संभवतः jQuery के साथ क्या करना पड़ सकता है? –

+0

अनुराग: जब आप संपादन कर रहे हों तो आप 'location.host' पर अनावश्यक 'toString' कॉल से छुटकारा पा सकते हैं। –

+0

yikes @no, क्या आप बदलते समय ओवरराइट करते थे? – Anurag

उत्तर

15
location.pathname 

pathnameकेवल पथ वापस आ जाएगी। यदि आप querystring और वैकल्पिक रूप से hash चाहते हैं, तो आपको search और hash गुणों को भी जोड़ना होगा। इस यूआरएल पर विचार करें:

http://www.example.com/path/to/glory?key=value&world=cup#part/of/page 

location.pathname => "/path/to/glory" 
location.search => "?key=value&world=cup" 
location.hash  => "#part/of/page" 

आप पूरी बात चाहते हैं,

/path/to/glory?key=value&world=cup#part/of/page 

तो बस इन सभी को श्रेणीबद्ध:

location.pathname + location.search + location.hash 

हमेशा कहीं with उपयोग करना चाहता था। यह सही अवसर की तरह दिखता है :)

with(location) { 
    pathname + search + hash; 
} 
+0

'खोज' और 'हैश' को न भूलें। –

+0

@ मैथ्यू - क्वेरीस्ट्रिंग या हैश को ओपी के प्रश्न में सूचीबद्ध नहीं किया गया था, इसलिए मैं यह नहीं मान सकता कि वह इसे चाहेगा, लेकिन मैं जो कर सकता हूं वह मेरे उत्तर पर विस्तृत है :) – Anurag

0

एक और दृष्टिकोण प्रोटोकॉल को छोड़कर और संपूर्ण href से सबस्ट्रिंग का उपयोग करके होस्ट करेगा।

window.location.href.substring(
    (window.location.protocol+'//'+window.location.host).length 
) 

अपने यूआरएल है http://google.com/test?whatever=1#hello यह /test?whatever=1#hello वापस आ जाएगी।

संबंधित मुद्दे