2010-09-12 9 views
6

में जावास्क्रिप्ट का पता लगाने # मेरा आवेदन एक आईफ्रेम ऐप है, इसलिए जब उपयोगकर्ता पृष्ठ बदलता है तो वे स्वचालित रूप से शीर्ष पर नहीं जाते हैं। पृष्ठ लोड पर इसकी रोकथाम के लिए मैं फोनयूआरएल

window.location.hash = 'tophash' 

मैं कुछ दुर्लभ मामलों मैं पेज के एक विशिष्ट भाग के लिए उपयोगकर्ता की जरूरत पर फिर भी मिल गया है। तो मैं अंत में #anotherID के साथ एक यूआरएल बनाते हैं। समस्या वर्तमान में उन्हें पृष्ठ लोड पर टॉफैश करने के लिए लिया जाता है।

मैं क्या जरूरत है अगर वहाँ यूआरएल के भीतर एक हैश यह नहीं चलता है window.location.hash = 'tophash'

तो मेरे सवाल है कि कैसे मैं URL में एक # की उपस्थिति detech करते है ...?

उत्तर

3

इसे सेट करने से पहले hash संपत्ति को क्वेरी करना नौकरी करना चाहिए।

if ((!window.location.hash) || (window.location.hash == "#")) 
window.location.hash = "tophash"; 
+1

यह खाली होने पर '== शून्य 'नहीं है, कम से कम क्रोम (http://jsbin.com/ecela4) पर नहीं है। यह * एक खाली स्ट्रिंग होना चाहिए (और क्रोम पर है: http://jsbin.com/ecela4/2), लेकिन मैं शायद रक्षात्मक रूप से कोड और '==" "' 'के साथ जाऊंगा। –

+0

hmmm == null काम नहीं किया == '' हालांकि – Starlin

+0

@ टीजे। अच्छी बात! 'लम्बाई' चेक में बदल दिया गया है और यह सुनिश्चित करने के लिए केवल एक अकेले '# 'के लिए एक चेक जोड़ा गया है - क्रोम अकेला हो जाता है लेकिन मैं –