javascript - मैं जावास्क्रिप्ट के साथ पता बार परिवर्तन का पता कैसे लगा सकता हूं?




javascript-events address-bar (3)

आपको किसी ईवेंट को बेनकाब करने के लिए स्थान ऑब्जेक्ट का विस्तार करना चाहिए जिसे आप बाध्य कर सकते हैं।

अर्थात:

window.location.prototype.changed = function(e){};

(function() //create a scope so 'location' is not global
{
    var location = window.location.href;
    setInterval(function()
    {
        if(location != window.location.href)
        {
            location = window.location.href;
            window.location.changed(location);
        }
    }, 1000);
})();

window.location.changed = function(e)
{
    console.log(e);//outputs http://newhref.com
    //this is fired when the window changes location
}

मेरे पास एक अजाक्स भारी एप्लिकेशन है जिसमें एक यूआरएल हो सकता है

http://example.com/myApp/#page=1

जब कोई उपयोगकर्ता साइट पर हेरफेर करता है, तो पता बार कुछ ऐसा बदल सकता है

http://example.com/myApp/#page=5

पेज को पुनः लोड किए बिना।

मेरी समस्या निम्नलिखित अनुक्रम है:

  1. उपयोगकर्ता पहले यूआरएल को बुकमार्क करता है।
  2. उपयोगकर्ता एप्लिकेशन को कुशलतापूर्वक उपयोग करता है जैसे कि दूसरा यूआरएल वर्तमान स्थिति है।
  3. उपयोगकर्ता चरण 1 में बनाए गए बुकमार्क पर क्लिक करता है।
  4. पता बार में यूआरएल http://example.com/myApp/#page=5 से http://example.com/myApp/#page=5 बदल जाता है, लेकिन मुझे पता लगाने के तरीके के बारे में पता नहीं है परिवर्तन हुआ

अगर मुझे कोई परिवर्तन पता चलता है तो कुछ जावास्क्रिप्ट इस पर कार्य करेगा।


एचटीएमएल 5 एक हैशचेंज इवेंट पेश करता है जो आपको टाइमर के साथ मतदान के बिना यूआरएल हैश परिवर्तनों की अधिसूचनाओं के लिए पंजीकरण करने की अनुमति देता है।

यह सभी प्रमुख ब्राउज़रों (फ़ायरफ़ॉक्स 3.6, आईई 8, क्रोम, अन्य वेबकिट-आधारित ब्राउज़र) द्वारा समर्थित है, लेकिन मैं अभी भी एक लाइब्रेरी का उपयोग करने का सुझाव देता हूं जो आपके लिए ईवेंट को संभालता है - यानी ब्राउज़र में टाइमर का उपयोग करके एचटीएमएल 5 घटना और अन्यथा घटना का उपयोग कर।

ईवेंट पर और जानकारी के लिए, https://developer.mozilla.org/en/dom/window.onhashchange और http://msdn.microsoft.com/en-us/library/cc288209%28VS.85%29.aspx देखें http://msdn.microsoft.com/en-us/library/cc288209%28VS.85%29.aspx


SWFaddress इन प्रकार की चीजों के लिए एक उत्कृष्ट पुस्तकालय है।








address-bar