2012-05-21 14 views
26

मैंने "window.location.hash" नया और "window.location.href" के बजाय मेरे jquery कोड में कोशिश की और दोनों ने एक ही परिणाम दिए।"window.location.href" और "window.location.hash" के बीच क्या अंतर है?

कोड यहाँ है:

window.location.href = ($(e.currentTarget).attr("href")); 
window.location.hash = ($(e.currentTarget).attr("href")); 

उन दोनों के बीच क्या अंतर है?

+0

http://www.w3schools.com/jsref/obj_location.asp –

+0

इस संपत्ति का मूल्य अलग-अलग ब्राउज़र में अलग हो सकता है। हैश संपत्ति प्राप्त करने का एक सुरक्षित तरीका इसके बजाय उपयोग करना होगा: 'var हैश = (location.href.split ("#") [1] || ""); ' – naXa

उत्तर

2

hash और hrefwindow.location ऑब्जेक्ट दोनों गुण हैं। hash# से यूआरएल का हिस्सा है (या # कोई रिक्त स्ट्रिंग नहीं है), जबकि href पूरे यूआरएल का स्ट्रिंग प्रस्तुति है।

+1

निश्चित रूप से इसमें' # 'वर्ण शामिल है। –

+0

@AmirRaminfar वास्तव में: सही किया गया। – lonesomeday

2

हैश संपत्ति हैश साइन (#) सहित एक यूआरएल के एंकर हिस्से को लौटाती है। उदाहरण http://stackoverflow.com/#Page

href = http://stackoverflow.com/#Page 
hash = #Page 
7

टेस्ट उस पर तरह http://[www.example.com]:80/search?q=devmo#test

हैश एक यूआरएल के लिए यूआरएल जिसमें # प्रतीक सहित # प्रतीक है, इस प्रकार का हिस्सा लौट। आप ब्राउज़र के समर्थन में हैश में परिवर्तनों की अधिसूचना प्राप्त करने के लिए हैशचेंज ईवेंट सुन सकते हैं।

Returns: #test 

href पूरे यूआरएल देता है।

Returns: http://[www.example.com]:80/search?q=devmo#test 

Read More

17

एक महत्वपूर्ण अंतर यह है कि window.location.hash urldecoded है, जबकि window.location.href में टुकड़ा पहचानकर्ता urldecoded नहीं है।दूसरे शब्दों में:

window.location.hash.split('#')[1] != window.location.href.split('#')[1] 

यदि वह URL तो http://example.com/page#3%3D3 है:

window.location.hash.split('#')[1] == '3=3' 
window.location.href.split('#')[1] == '3%3D3' 

दूसरे शब्दों में:

window.location.hash.split('#')[1] == decodeURIComponent(window.location.href.split('#')[1]) 
+2

इसने जवाब नहीं दिया कि मैं यहां क्या आया था, लेकिन यह कम जानने के लिए उपयोगी नहीं है। धन्यवाद –

+0

डीकोडेड 'window.location.hash' आपके ब्राउज़र में एक बग हो सकता है, लेकिन अब मैं इसे क्रोम में और न ही फ़ायरफ़ॉक्स में पुन: उत्पन्न नहीं कर सकता। तो आपको इस संपत्ति का उपयोग करते समय सावधान रहना होगा क्योंकि विभिन्न ब्राउज़रों में मूल्य भिन्न हो सकता है। – naXa

-1

यहाँ window.location.href और window.location.hash

बीच अंतर के लिए सरल उदाहरण है

यूआरएलके लिए:

  • href: http://www.manam.com/member/#!create
  • हैश: #!create
संबंधित मुद्दे