2010-05-10 15 views

उत्तर

89

यह एक "टुकड़ा" या "नाम एंकर" है। आप दस्तावेज़ के भाग से लिंक करने के लिए उपयोग कर सकते हैं। आम तौर पर जब आप किसी पृष्ठ से लिंक करते हैं, तो ब्राउज़र इसे पृष्ठ के शीर्ष पर खुलता है। लेकिन आप एक सेक्शन को आधे रास्ते से लिंक करते हैं, आप उस शीर्षक (या जो भी) से लिंक करने के लिए टुकड़े का उपयोग कर सकते हैं।

यदि पृष्ठ के भीतर कोई <a name="whatever"/> टैग है, तो ब्राउज़र पृष्ठ के शीर्ष पर सिर्फ लिंक करेगा। अगर टुकड़ा खाली है, तो यह पृष्ठ के शीर्ष से भी लिंक होगा।

एक टुकड़ा के लिए केवल<a href="#">Link name</a>, तो उस वर्तमान पृष्ठ के शीर्ष पर सिर्फ एक लिंक भी है।

आप अक्सर जावास्क्रिप्ट के साथ संयोजन में उपयोग किए जाने वाले लिंक का उपयोग करते हैं। मानक अनुपालन एचटीएमएल को href विशेषता की आवश्यकता होती है, लेकिन यदि आप जावास्क्रिप्ट के साथ अनुरोध को संभालने की योजना बना रहे हैं तो "#" एक उचित स्थान धारक के रूप में कार्य करता है।

+1

+1 हालांकि आधिकारिक शब्द एक यूआरएल खंड है, न कि "हैश संदर्भ": http://www.w3.org/TR/WD-html40-970708/htmlweb.html#h-4.1.1 –

+0

हाँ , मैंने इसे अपने जवाब में "खंड" में बदल दिया, क्योंकि अधिकांश लोग इसका उपयोग करते हैं। मुझे कभी नहीं पता था कि इसका "आधिकारिक" नाम था :) –

+2

ब्राउज़र क्यों इसे 'पृष्ठ के शीर्ष पर जाएं' के रूप में देखते हैं: तकनीकी रूप से, आपने पृष्ठ बदल दिया। लिंक पर क्लिक करने के बाद, आप देखेंगे कि # वास्तव में पता बार में यूआरएल में जोड़ा गया है, और यदि आप बैक बटन पर क्लिक करते हैं तो यह इसे फिर से हटा देगा। मैं नहीं कहूंगा कि यह दस्तावेज़ के हिस्से का एक लिंक है, दस्तावेज़ के अंदर किसी स्थान के लिए एक लिंक है। अन्यथा, मूल रूप से वही बात जो मैं टाइप कर रहा था ... – animuson

2

यह पृष्ठ पर वापस लिंक करता है। यह अक्सर लिंक के साथ प्रयोग किया जाता है जो वास्तव में कुछ जावास्क्रिप्ट चलाते हैं।

22

... बस कुछ अतिरिक्त उपयोगी टिप्स जोड़ने के लिए।

आप पहुँच सकते हैं और जावास्क्रिप्ट में document.location.hash साथ बदल सकते हैं।

यह एक इसी आईडी (जैसे <div id="top"></div>) के साथ एक तत्व के लिए एक नाम पर रखा गया लंगर (जैसे <a name="top"></a>) या को इंगित कर सकते हैं।

अपने आप ही एक देखकर (जैसे <a href="#" onclick="pop()">popup</a>) आम तौर पर एक लिंक विशेष रूप से JavaScript चलाने के लिए इस्तेमाल किया जा रहा है इसका मतलब है। यह बुरा अभ्यास है।

कोई भी a तत्व में href होना चाहिए जो वैध संसाधन को इंगित करता है। यदि कोई अस्तित्व में नहीं है, तो button जैसे किसी अन्य तत्व का उपयोग करने पर विचार करें।

+1

यह एक अच्छा मुद्दा है कि यह विशेष रूप से अच्छा अभ्यास नहीं है ... लेकिन सिर्फ इसलिए कि यह अच्छा नहीं है इसका मतलब यह नहीं है कि आप इसे इस तरह इस्तेमाल नहीं करेंगे जगह :) –

+1

@alex, यदि यह खराब अभ्यास है, तो हमें बताएं कि * अच्छा * अभ्यास इसके बजाय क्या उपयोग करेगा। –

+0

@Kyralessa यह अगले अनुच्छेद में ठीक था। वैसे भी, मैंने एक संपादन किया ताकि उम्मीद है कि यह स्पष्ट है। – alex

9

# एक एंकर के लिए एक लिंक इंगित करता है।

मैं thougt मैं भी कुछ और ही उल्लेख चाहते हैं:

एक कड़ी है कि सक्रिय है क्योंकि यह शीर्ष करने के लिए पृष्ठ स्क्रॉल जावास्क्रिप्ट बुरा है के लिए href के रूप में '#' का उपयोग करना - जो शायद नहीं है तुम क्या चाहते। इसके बजाय, javascript:void(0) का उपयोग करें।

+0

+1 इन लिंक पर क्लिक करने के लिए पृष्ठ को शीर्ष पर स्क्रॉल करने के लिए मजबूर करता है। –

+4

अब आपको एक एंकर की आवश्यकता नहीं है। एचटीएमएल 5 (और शायद एचटीएमएल 4) के रूप में टैग वाला कोई तत्व किसी खंड पहचानकर्ता द्वारा लक्षित किया जा सकता है। एचटीएमएल 5 दस्तावेज़ देखें: http://www.whatwg.org/specs/web-apps/current-work/multipage/history.html#scroll-to-fragid –

+1

'जावास्क्रिप्ट: शून्य (0)' का उपयोग न करें - यदि यह कोई लिंक नहीं है तो 'बटन' का उपयोग करें। – alex

6

पाउंड चिह्न (#) पृष्ठ पर एक लंगर लगाने के लिए इंगित करता है। उदाहरण के लिए, यदि आप पृष्ठ पर इस कहीं शामिल हैं:

<a name="foo"></a> 

या, और अधिक हाल ही में:

<div id="foo">*part of page*</div> 

और फिर आप पेज है कि href #foo पर एक लिंक पर क्लिक करें, यह नेविगेट जाएगा आईडी foo आईडी के साथ नाम या div के साथ एंकर पर।

हालांकि, अगर आपके पास href # है, तो यह पृष्ठ के शीर्ष पर पहुंच जाएगा।

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

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