2012-05-16 22 views
65

के साथ पृष्ठ को फिर से लोड करें मैं कुछ प्रक्रियाओं के बाद बाहरी जावास्क्रिप्ट फ़ाइल में इस कथन के साथ पृष्ठ को रीफ्रेश करने का प्रयास कर रहा हूं।जावास्क्रिप्ट हैश मान

window.location.href = window.location.href 

यह पूरी तरह से पृष्ठ को फिर से लोड करता है लेकिन मैं पुनः लोड करने के बाद विशिष्ट स्थान पर स्क्रॉल करना चाहता हूं। तो, मैंने इसे पेज पर रखा है।

<a name="uploadImgSection"></a> 

और

window.location.href = window.location.href + "#mypara"; 

लिए जावास्क्रिप्ट इस कोड को लोड नहीं होता है/पेज को ताज़ा या तो

window.location.hash = "#uploadImgSection"; 
window.location.href = window.location.href; 

जब मैं ऐसा है, यह पेज पर लोड नहीं होता है को बदलने सब। क्या स्क्रॉल बार स्थिति के साथ पेज को फिर से लोड किया जा सकता है?

+0

नए पेज पर रीडायरेक्ट करने के लिए एक PHP फ़ाइल का उपयोग करें? –

+0

कोई सिर्फ एचटीएमएल पेज नहीं। उद्देश्य कुछ जावास्क्रिप्ट कार्यों को चलाने के बाद पृष्ठ को रीफ्रेश कर रहा है और उसे उस पैराग्राफ की स्थिति पर वापस स्क्रॉल करें। –

+1

आप 'window.location.href' को कैसे कॉल कर रहे हैं? यदि आप पेज लोड पर ऐसा कर रहे हैं और आप f5 को मार रहे हैं और आप फ़ायरफ़ॉक्स का उपयोग कर रहे हैं (या अन्य ब्राउजर जो स्क्रॉल पर F5 से पहले स्क्रॉल करते हैं) यह _might_ समस्या – ajax333221

उत्तर

120
window.location.href += "#mypara"; 
location.reload(); 

पहले हैश जोड़ें और फिर पृष्ठ को फिर से लोड की कोशिश करो। हैश वहां रहेगा, और पेज पुनः लोड हो जाएगा।

परीक्षण, काम करता है।


पुनश्च: एक हैश पहले ही URL में मौजूद हैं, तो आप सीधे location.hash बजाय .href के माध्यम से इसे बदलने के लिए कर सकते हैं।

+2

आप प्रतिभा डेरेक हैं। यह काम करता हैं। धन्यवाद दोस्त। –

+1

एक और बात। इसने पृष्ठ को रीफ्रेश किया लेकिन इसमें पुनः लोड करने के बाद पोस्ट डेटा शामिल है। मैं उन्हें कैसे साफ कर सकता हूं? वे पोस्ट डेटा मुझे डेटा पंक्ति को हटाने के लिए रोक रहे हैं। –

+0

क्या पोस्ट डेटा? –

-1

इस

  var urlString=window.location.href; 
      var url=urlString.split("#")[0]; 
      window.location.href = url + "#mypara"; 
+3

यह पृष्ठ को फिर से लोड नहीं करता है। –

19

यह वास्तव में एक पुरानी पोस्ट है, मैं अभी भी उत्तर के सही संयोजन के साथ प्रयास और उत्तर दूंगा।

  1. location.reload() और location.reload(true) ब्राउज़र पर F5 जैसे काम करता है। यदि पहले लोड ने इसे किया था तो यह सभी फॉर्म डेटा सर्वर पर वापस पोस्ट करेगा।
  2. location.href ब्राउज़र द्वारा मान्यता प्राप्त यूआरएल परिवर्तन होने तक पृष्ठ को रीफ्रेश नहीं करेगा। हैश (#paramname) में परिवर्तन यूआरएल परिवर्तन के लिए योग्य नहीं है और इसलिए location.href+="#paramname" काम नहीं करेगा।

तो, location.href+="?anything#paramname" को पृष्ठ को फिर से लोड करना चाहिए क्योंकि ?anything यूआरएल में बदल गया है।

+0

अच्छा जवाब। यहां एक पका हुआ संस्करण है: window.location = ' & Rand =' + ((नई तिथि())। GetTime()% 1000000000) + '# myhash'; – Johan

+3

एक और एक: location.href + = 'और rand =' + Math.rand() + '# myhash'; – Johan

+0

आईएमओ यह प्रश्न अन्य सवालों की तुलना में सबसे अच्छा सवाल का जवाब देता है। इसके लिए अंतर्निहित कोड में कोई बदलाव की आवश्यकता नहीं है जो उदाहरण के लिए लाइब्रेरी के हिस्से के रूप में लिखा गया हो। – thekingoftruth

25

मैं इस प्रश्न को अपडेट करना चाहता था क्योंकि मुझे पता चला कि window.location.href += "#mypara" यूआरएल में पैरामीटर को तब भी जोड़ देगा जब भी यह मौजूद हो।मैं पाया है बेहतर तरीका

window.location.hash = "#mypara" 
location.reload(); 
0

उपयोग करने के लिए यह मेरे लिए काम किया है:

var tabValue = document.URL; 
window.location = tabValue.substring(0, tabValue.lastIndexOf("#")); 
window.location.hash = "#tabs-3"; //Whatever is your hash value 
location.reload(); 
1
var loc = location.hash; 
location.hash = " "; 
location.hash = loc; 
0

इस के लिए मुझे

$('body').on('click', '.className', function() { 
    var data = $(this).attr('href'); 
    alert(data); 
    window.location.reload(); 
}); 
+0

यह मूल रूप से अन्य उत्तरों को करने का लंबा तरीका प्रतीत होता है, साथ ही मुझे नहीं लगता कि इसमें #myPara भाग शामिल है, इसलिए मूल पोस्टर की तरह काम नहीं करेगा, हालांकि इसे स्पष्ट करने के लिए उत्तर संपादित करें अगर मैं गलत हूँ। – blm

0

इस काम से काम किया मुझे

window.location.href = baseUrl + "#/m/team"; 
location.reload(); 
के लिए
संबंधित मुद्दे