jQuery के ब्राउज़र के URL को बदलने के लिए एक बढ़िया प्लगइन है, जिसे jQuery-pusher कहा जाता है ।
जावास्क्रिप्ट pushState
और jQuery को एक साथ इस्तेमाल किया जा सकता है, जैसे:
history.pushState(null, null, $(this).attr('href'));
उदाहरण:
$('a').click(function (event) {
// Prevent default click action
event.preventDefault();
// Detect if pushState is available
if(history.pushState) {
history.pushState(null, null, $(this).attr('href'));
}
return false;
});
केवल जावास्क्रिप्ट का उपयोग करनाhistory.pushState()
, जो कि रेफ़र को बदलता है, जो कि राज्य बदलने के बाद XMLHttpRequest ऑब्जेक्ट के लिए HTTP हेडर में उपयोग किया जाता है।
उदाहरण:
window.history.pushState("object", "Your New Title", "/new-url");
PushState () विधि:
pushState()
तीन पैरामीटर लेता है: एक राज्य वस्तु, एक शीर्षक (जिसे वर्तमान में अनदेखा किया गया है), और (वैकल्पिक रूप से) एक URL। आइए इन तीन मापदंडों में से प्रत्येक को अधिक विस्तार से देखें:
राज्य वस्तु - राज्य वस्तु एक जावास्क्रिप्ट वस्तु है जो कि नए इतिहास प्रविष्टि द्वारा बनाई गई है pushState()
। जब भी उपयोगकर्ता नए राज्य में नेविगेट करता है, तो एक पॉपस्टेट घटना को निकाल दिया जाता है, और घटना की राज्य संपत्ति में इतिहास प्रविष्टि की राज्य वस्तु की एक प्रति शामिल होती है।
राज्य वस्तु कुछ भी हो सकती है जिसे क्रमबद्ध किया जा सकता है। क्योंकि फ़ायरफ़ॉक्स राज्य वस्तुओं को उपयोगकर्ता की डिस्क पर सहेजता है ताकि उपयोगकर्ता द्वारा उसके ब्राउज़र को पुनरारंभ करने के बाद उन्हें पुनर्स्थापित किया जा सके, हम राज्य वस्तु के क्रमबद्ध प्रतिनिधित्व पर 640k वर्णों की आकार सीमा लगाते हैं। यदि आप एक राज्य वस्तु पास करते हैं जिसका अनुक्रमित प्रतिनिधित्व इससे बड़ा है pushState()
, तो विधि एक अपवाद फेंक देगी। यदि आपको इससे अधिक स्थान की आवश्यकता है, तो आपको सेशनस्टोरेज और / या लोकलस्टोरेज का उपयोग करने के लिए प्रोत्साहित किया जाता है।
शीर्षक - फ़ायरफ़ॉक्स वर्तमान में इस पैरामीटर की उपेक्षा करता है, हालांकि भविष्य में इसका उपयोग कर सकता है। खाली स्ट्रिंग को यहां पास करना भविष्य में विधि में बदलाव के खिलाफ सुरक्षित होना चाहिए। वैकल्पिक रूप से, आप जिस राज्य में जा रहे हैं, उसके लिए एक छोटा शीर्षक पारित कर सकते हैं।
URL - नए इतिहास प्रविष्टि का URL इस पैरामीटर द्वारा दिया गया है। ध्यान दें कि कॉल करने के बाद ब्राउज़र इस URL को लोड करने का प्रयास नहीं करेगा pushState()
, लेकिन हो सकता है कि वह बाद में URL को लोड करने का प्रयास करे, उदाहरण के लिए उपयोगकर्ता द्वारा उसके ब्राउज़र को पुनरारंभ करने के बाद। नए URL को निरपेक्ष होने की आवश्यकता नहीं है; यदि यह सापेक्ष है, तो यह वर्तमान URL के सापेक्ष हल हो गया है। नया URL वर्तमान URL के समान मूल होना चाहिए; अन्यथा, pushState()
एक अपवाद फेंक देंगे। यह पैरामीटर वैकल्पिक है; यदि यह निर्दिष्ट नहीं है, तो यह दस्तावेज़ के वर्तमान URL पर सेट है।