2012-06-08 10 views
24

संभव डुप्लिकेट:
Modify the URL without reloading the pageब्राउज़र में URL बदलें पता पट्टी

मैं एक तरह से मेरे वर्तमान जावास्क्रिप्ट एनिमेशन का उपयोग कर कार्यात्मक मेरी आंतरिक लिंक बनाने के लिए की तलाश में हूँ, जब आप उन पर क्लिक करते हैं तो पृष्ठ को फिर से लोड करने के बिना - परन्तु मैं चाहता हूं कि URL ब्राउज़र में अपडेट हो।

कई वेबसाइटों ऐसा करते हैं, यहाँ एक अच्छा उदाहरण है: http://grooveshark.com/#!/search?q=adf

कैसे वे बिना पृष्ठ reloading अद्यतन करने के लिए यूआरएल मिलता है?


अधिक विवरण:

वर्तमान में अपने पन्ने पर एक लिंक <a href="#aboutus">About Us</a> तरह लग रहा है, यह जावास्क्रिप्ट के माध्यम से <div id="aboutus"></div> पर ले जाता है।

जावास्क्रिप्ट लग रहा है कि:

$("#navigation a").click(function(e){ 
    animate(..scroll to section..); 
    e.preventDefault(); // <========== 
}); 

मेरा मानना ​​है कि "e.preventDefault()" है क्या कारण है यूआरएल अद्यतन नहीं किया जा सकता है, लेकिन मैं कैसे पेज लोड करते समय से ब्राउज़र रोकूँ यूआरएल बदल गया है?

अन्य वेबसाइटें यह कैसे करती हैं? इस विधि को क्या कहा जाता है (इसलिए मैं इसे और आगे खोज सकता हूं)?

धन्यवाद।

+1

भी यह सहायक पा सकता है: https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history –

उत्तर

23

Here is a similar question

function processAjaxData(response, urlPath){ 
    document.getElementById("content").innerHTML = response.html; 
    document.title = response.pageTitle; 
    window.history.pushState(
     { 
      "html":response.html, 
      "pageTitle":response.pageTitle 
     }, 
     "", 
     urlPath 
    ); 
} 
+1

आह हाँ, पुशस्टेट पहेली का गुम टुकड़ा प्रतीत होता है। आपका स्वागत है –

+0

आपका स्वागत दोस्त;) –

1

यह पूरी बात की तरह AJAX के साथ किया जाता है मेरे लिए लग रहा है:

यहाँ एक उदाहरण है। यूआरएल में #! ब्राउज़र को एंकर के रूप में यूआरएल के बाकी हिस्सों की व्याख्या करने का कारण बन रहा है - एंकर पेज रीलोड का कारण नहीं बनता है (असल में, सर्वर कभी नहीं देख पाएगा कि सामान्य HTTP के दौरान ब्राउजर क्या एंकर कर रहा है निवेदन)। जब यूआरएल बदलता है, जावास्क्रिप्ट लेता है, क्वेरीस्ट्रिंग का निरीक्षण करता है, और जो भी वेब सेवाओं का उपयोग कर सर्वर से उचित है लोड करता है।

मैंने इसे गहराई से बहुत अधिक नहीं देखा है, लेकिन यह मेरे जैसा दिखता है।

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