javascript - कोई ईवेंट ट्रिगर कैसे करें जब उपयोगकर्ता यूआरएल बदलता है?




jquery angularjs (2)

आप $locationChangeSuccess पर नजर डाल सकते हैं।

आप इस तरह से पथ प्राप्त कर सकते हैं:

var loc = $location.path();

फिर loc परिवर्तन पर आप अपना कार्य संलग्न कर सकते हैं।

मैं क्रोम एक्सटेंशन पर काम कर रहा हूं, मुझे पता लगाना है कि उपयोगकर्ता ने एक यूआरएल टाइप किया है। मुझे इसके बारे में मालूम है:

chrome.tabs.onUpdated.addListener(eventLisenerObj.onUpdated);

लेकिन, जब भी यूआरएल बदल जाता है (जैसे जब पृष्ठ ऑटो पुनः लोड होता है, या उपयोगकर्ता लिंक पर क्लिक करता है, आदि) कहलाता है।

मैं यह निर्धारित करने में सक्षम होना चाहता हूं कि URL केवल यूआरएल टाइप करके यूजर को बदल दिया गया।


आप webNavigation.onCommitted ( MDN ) ईवेंट का उपयोग कर इस जानकारी को प्राप्त कर सकते हैं। घटना श्रोता एक संपत्ति transitionType ( एमडीएन ) प्राप्त करता है, जो नेविगेशन के कारण के आधार पर अलग-अलग मान ( एमडीएन ) होगा । आप जिन मूल्यों को ट्रिगर करते हैं, वे बिल्कुल उसी पर निर्भर करते हैं जो आप चाहते हैं। आप जो वर्णन करते हैं, आप संभवत: 'typed' ( एमडीएन ) चाहते हैं , लेकिन संभावित रूप से 'generated' ( एमडीएन ) , 'keyword' ( एमडीएन ) और / या 'keyword_generated' ( एमडीएन ) भी चाहते हैं

संभावित मूल्यों की सूची को क्रोम के इतिहास एपीआई पृष्ठ पर समझाया गया है (वे क्रोम webNavigation पेज पर सूचीबद्ध हैं, लेकिन वहां समझा नहीं गए हैं) ( webNavigation पर: TransitionType टाइप) (क्रोम हिस्ट्री एपीआई पेज से पाठ):

  • "link"
    किसी अन्य पृष्ठ पर एक लिंक पर क्लिक करके उपयोगकर्ता को इस पृष्ठ पर मिला।
  • "typed"
    उपयोगकर्ता को पता पट्टी में यूआरएल टाइप करके इस पेज को मिला। इसके अलावा अन्य स्पष्ट नेविगेशन कार्यों के लिए भी इस्तेमाल किया। यहां तक ​​कि generated ( एमडीएन ) देखें, जो उन मामलों के लिए उपयोग किया जाता है जहां उपयोगकर्ता ने एक विकल्प चुना जो कि यूआरएल की तरह बिल्कुल नहीं दिखता था।
  • "auto_bookmark"
    उपयोगकर्ता इस पृष्ठ पर यूआई में एक सुझाव के माध्यम से मिला - उदाहरण के लिए, एक मेनू आइटम के माध्यम से
  • "auto_subframe"
    सबफ़्रेम नेविगेशन यह ऐसी सामग्री है जो स्वचालित रूप से गैर-टॉप-स्तरीय फ़्रेम में लोड होती है उदाहरण के लिए, यदि एक पृष्ठ में कई फ़्रेम होते हैं जिनमें विज्ञापन होते हैं, तो उन विज्ञापन URL में संक्रमण प्रकार होता है उपयोगकर्ता यह भी महसूस नहीं कर सकता है कि इन पृष्ठों की सामग्री एक अलग फ़्रेम है, और इसलिए यूआरएल के बारे में परवाह नहीं हो सकती ( manual_subframe ( manual_subframe भी देखें)।
  • "manual_subframe"
    सबफ़्रेम नेविगेशन के लिए जो स्पष्ट रूप से उपयोगकर्ता द्वारा अनुरोध किया जाता है और पिछली / अगली सूची में नई नेविगेशन प्रविष्टियां जनरेट करता है। एक स्पष्ट रूप से अनुरोधित फ़्रेम संभवत: एक स्वचालित रूप से लोड किए गए फ़्रेम की तुलना में अधिक महत्वपूर्ण है क्योंकि उपयोगकर्ता शायद इस तथ्य की परवाह करता है कि अनुरोधित फ़्रेम लोड हो गया था।
  • "generated"
    उपयोगकर्ता को इस पेज पर पता बार में टाइप करके और उस एंट्री का चयन करके मिला, जो यूआरएल की तरह नहीं दिखता। उदाहरण के लिए, एक मैच में Google खोज परिणाम पृष्ठ का URL हो सकता है, लेकिन यह उपयोगकर्ता के लिए "Google के लिए खोजें ..." के रूप में दिखाई दे सकता है। ये बिल्कुल typed ( एमडीएन ) नेविगेशन के समान नहीं हैं क्योंकि उपयोगकर्ता ने गंतव्य URL नहीं typed या नहीं देखा था। keyword भी देखें ( एमडीएन )
  • "auto_toplevel"
    पृष्ठ कमांड लाइन में निर्दिष्ट किया गया था या प्रारंभ पृष्ठ है।
  • "form_submit"
    उपयोगकर्ता ने एक फ़ॉर्म में मानों को भर दिया और इसे सबमिट किया। ध्यान दें कि कुछ स्थितियों में - जैसे कि जब कोई फ़ॉर्म सामग्री को प्रस्तुत करने के लिए स्क्रिप्ट का उपयोग करता है - फ़ॉर्म सबमिट करने से इस संक्रमण प्रकार का नतीजा नहीं होता है
  • "reload"
    उपयोगकर्ता ने फिर से लोड किए गए बटन को क्लिक करके या पता बार में एन्टर दबाकर पृष्ठ पुनः लोड किया। सत्र पुनर्संस्थापन और बंद टैब फिर से खोलें इस संक्रमण प्रकार का उपयोग करें, भी।
  • "keyword"
    डिफ़ॉल्ट खोज प्रदाता के अलावा बदले जाने योग्य कीवर्ड से यूआरएल उत्पन्न हुआ था। भी देखें keyword_generated ( एमडीएन )
  • "keyword_generated"
    एक कीवर्ड के लिए जनित विज़िट के अनुरूप। keyword भी देखें ( एमडीएन )

कुछ प्रकार के बदलावों को अंतर करने के लिए, संक्रमण प्रकार के मूल्य के अतिरिक्त, आप TransitionQualifier क्वालिफायर ( एमडीएन ) को भी देखना चाहेंगे। संभव मान हैं ( क्रोम दस्तावेज़ से , जो कि MDN पर कुछ भिन्न रूप से वर्णित है):

  • "client_redirect"
    नेविगेशन के दौरान पृष्ठ पर JavaScript या मेटा ताज़ा टैग के कारण एक या अधिक पुनर्निर्देशन हुआ।
  • "server_redirect"
    नेविगेशन के दौरान सर्वर से भेजे गए HTTP हेडर के कारण एक या अधिक पुनर्निर्देशन हुआ।
  • "forward_back"
    नेविगेशन आरंभ करने के लिए उपयोगकर्ता ने आगे या पीछे बटन का उपयोग किया था
  • "from_address_bar"
    उपयोगकर्ता ने पता बार (उर्फ ओमनिबॉक्स) से नेविगेशन आरंभ किया






firefox-webextensions