जावास्क्रिप्ट हैश मान वाले पृष्ठ को पुनः लोड करता है


80

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

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;

जब मैं ऐसा करता हूं, तो यह पृष्ठ को फिर से लोड नहीं करता है। क्या कोई ऐसा तरीका है जिससे मैं पृष्ठ को स्क्रॉल बार स्थिति में पुनः लोड कर सकता हूं?


नए पृष्ठ पर पुनर्निर्देशित करने के लिए एक PHP फ़ाइल का उपयोग करें?
डेरेक 會 功夫 ere

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

1
आप कैसे बुला रहे हैं window.location.href? यदि आप पृष्ठ लोड पर कर रहे हैं और आप f5 मार रहे हैं और आप फ़ायरफ़ॉक्स (या अन्य ब्राउज़र का उपयोग कर रहे हैं जो स्क्रॉल करता है, जहां आप ताज़ा करने से पहले f5 पर थे) यह समस्या हो सकती है
ajax333221

जवाबों:


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

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

परीक्षण किया, काम किया।


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


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

कृपया इसे पढ़ें। stackoverflow.com/questions/2405117/… इसमें उन POST डेटा को शामिल किया गया है जो मुझे अन्य कमबैक घटनाओं को करने से रोक रहा है।
जोनास टी

खैर, मैं पोस्ट के बारे में ज्यादा नहीं जानता। यदि आप चाहें, तो आप इसके बारे में एक नया प्रश्न पूछ सकते हैं।
डेरेक 會 朕 ere

1
खैर, मुझे आखिरकार क्वेरी स्ट्रिंग का उपयोग करना पड़ा। "window.location.href = url +" और क्रिया = पुनः लोड करें ";"। पेज लोड घटना पर javascripot में एक्शन क्वेरी स्ट्रिंग की जाँच करें, और यह करें "window.location.hash =" #uploadImgSection ";"। यह काम करने का तरीका नहीं है, लेकिन मुझे यह काम अभी के लिए करना है।
जोनास टी

@ डेरेक 會 朕 功夫 आप एक प्रतिभाशाली हैं :)
नागी

35

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

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

25

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

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

इसलिए, URL में परिवर्तन के location.href+="?anything#paramname"रूप में एक नए अनुरोध के रूप में पृष्ठ को फिर से लोड करना चाहिए ?anything


अच्छा उत्तर। यहाँ एक पका हुआ संस्करण है: window.location = '<; php echo $ _POST [' back ';>> & rand =' + ((नई तिथि) ()। GetTime ()% 1000000000) + '# # मिथक';
जोहान

4
एक अन्य: स्थान.हृद + = 'और रंड =' + मठ.रांड () + '# मिथक';
जोहान

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

1
जोहान, Math.rand () को Math.random ()
tomJO में

निकटतम उत्तर (शायद अन्य उत्तर 2012 में सही थे, लेकिन 2018 में वे सभी गलत हैं), लेकिन इसमें उपयोगकर्ता के पते के बार इतिहास में प्रविष्टियां जोड़ने की समस्या है, जो सिर्फ ताज़ा करने की कोशिश में अच्छा नहीं है वही इतिहास राज्य ...
ग्लेन मेनार्ड


-1

इसे इस्तेमाल करे

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

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

"यह कोशिश करो" कोड केवल उत्तर बहुत उपयोगी नहीं हैं। यह क्या कर रहा है? यह काम क्यों करता है?
random_user_name

-1

यह मेरे लिए काम किया:

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


-1

इसने मेरे लिए काम किया

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

ऐसा लगता है कि मूल रूप से ऐसा करने का एक लंबा तरीका है जो अन्य उत्तर पहले से ही करते हैं, साथ ही मुझे नहीं लगता है कि इसमें #myPara हिस्सा शामिल है इसलिए यह काम नहीं करेगा जैसे कि मूल पोस्टर इसे चाहता है, हालांकि कृपया स्पष्ट करने के लिए उत्तर को संपादित करें मैं गलत हूँ।
BLM
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.