2010-11-18 11 views
5

मेरे पास एक ऐसा फ़ंक्शन है जो यूआरएल में हैश बदलता है और मेरे मुख्य पृष्ठ से एक div को हटा देता है/हटा देता है। मैंने ऐसा इसलिए किया था कि मेरे पास एक ऐसा पृष्ठ हो जिसे आप बिना किसी रीलोड के घुमा सकते हैं, लेकिन साथ ही मैं चाहता था कि लोग एक निश्चित अनुभाग को बुकमार्क करने में सक्षम हों और बाद में पृष्ठ पर जाने के बिना बाद में जाएं।यदि window.location.hash मदद

जब मैं अपना hash() फ़ंक्शन कॉल करने का प्रयास करता हूं, जो सभी divs को बंद करता है और हैश के आधार पर विशिष्ट div खोलता है, यह काम नहीं करता है। मेरे पास if कथन में सही बात नहीं है, क्योंकि जब मैंने hash() फ़ंक्शन में alert() डाला है, तो यह इसकी तरह लगता है।

function hash(){ 
    if (window.location.hash == "dcontact") { 
     removedivs(); 
     InsertContent('dcontact'); 
    } 
    if (window.location.hash == "dhome") { 
     removedivs(); 
     InsertContent('dhome'); 
    } 
} 
hash(); 

मुझे पता है सब कुछ मैं उल्लेख करने का शायद बेहतर तरीके हैं कि कर रहा हूँ, लेकिन यह केवल वेबसाइट मैं बना लिए जा रहा हूँ है, और मैं कम कैसे गन्दा लिपि में है परवाह नहीं कर सका अंत, जब तक यह काम करता है। window.location.hash

की शुरुआत स्मृति IE से पर # डाल नहीं करता है -

उत्तर

7

कारण यह काम नहीं करता वास्तविक हैश (अमेरिका में मुझे लगता है कि आप इसे एक पाउंड कहते हैं) प्रतीक है इस पर हैश प्रतीक है, इसलिए इस कार्य करें:

function hash() { 
    var hash = window.location.hash.replace('#',''); 

    if (hash == "dcontact"){removedivs(); InsertContent('dcontact');} 
    if (hash == "dhome"){removedivs(); InsertContent('dhome');} 
} 

आप, साथ ही बुला InsertContent (हैश) विचार कर सकते हैं बल्कि अगर() हर अलग लिंक के लिए एक कर की तुलना में आप

+0

धन्यवाद के लिए बहुत बहुत होगा अपने मदद, यह पूरी तरह से काम किया। – pobrien

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