यदि मैं फ़ायरफ़ॉक्स के स्रोत कोड को सही ढंग से समझता हूं, तो ब्राउज़र पहले फ़ॉर्म में पासवर्ड फ़ील्ड ढूंढता है। यदि फ़ॉर्म में 3 से अधिक पासवर्ड फ़ील्ड हैं, तो ऑटोफिल फ़ंक्शन उस फ़ॉर्म को अनदेखा करता है।
1 से 3 पासवर्ड फ़ील्ड मिलने के बाद, ब्राउज़र लॉगिन फ़ील्ड ढूंढता है। ब्राउज़र पहले पासवर्ड फ़ील्ड से पिछड़ी खोज शुरू करता है और मानता है कि लॉगिन फ़ील्ड text
या email
या url
या tel
या number
प्रकार का पहला पाया गया फ़ील्ड है।
अगला चरण निर्भर करता है कि यदि हम पेज लोड पर फॉर्म को चेक करते हैं या फॉर्म जमा करते हैं। यदि हम पृष्ठ लोड के दौरान जांचते हैं और एक लॉगिन फ़ील्ड और बिल्कुल एक पासवर्ड फ़ील्ड है, तो मामला सरल है और ब्राउज़र फॉर्म भर सकता है।
अन्य मामले (फॉर्म सबमिट या 1 से अधिक पासवर्ड फ़ील्ड) यह निर्धारित करने के लिए कुछ "स्मार्ट" तर्क करें कि कौन से पासवर्ड फ़ील्ड में नया पासवर्ड है और कौन सा पुराना पासवर्ड है, शायद संग्रहीत पासवर्ड अपडेट करने के लिए)। यदि आप विवरण में रुचि रखते हैं, तो स्रोत कोड डाउनलोड करें और toolkit/components/passwordmgr/nsLoginManager.js
फ़ाइल खोलें। चेक करने के लिए कार्य _fillForm
, _getFormFields
और _getPasswordFields
हैं।
बस सारांशित करने के लिए, फ़ायरफ़ॉक्स को किसी भी आईडी, नाम या श्रेणी विशेषताओं की आवश्यकता नहीं है यह अनुमान लगाने के लिए कि कौन सा क्षेत्र लॉगिन या पासवर्ड है। यह सिर्फ फॉर्म फ़ील्ड के प्रकार और क्रम पर निर्भर करता है।
यह सही है। यह भी उल्लेख किया जाना चाहिए कि यह केवल मूल HTML में फ़ील्ड्स के साथ काम करता है, जेएस जेनरेट की गई सामग्री के साथ नहीं। – user123444555621
बहुत बहुत धन्यवाद। यह अजीब है क्योंकि फ़ायरफ़ॉक्स signon.sqlite में फ़ील्डनाम स्टोर करता है। स्रोत कोड में खोजने के लिए समय और धैर्य नहीं था, लेकिन मैं एक नज़र डालेगा। –
एफएफ के कोड को देखने और इसे समझाए जाने के लिए आपका उत्तर बहुत उपयोगी है। मैंने आपके द्वारा समझाया गया प्रयास किया और यह बताता है कि आपने क्या रेखांकित किया है। यह व्यवहार मुझे परेशान कर रहा था क्योंकि मुझे उम्मीद थी कि वे अपने नाम बदलकर फ़ील्ड के स्वत: पूर्ण को हटा दें, क्योंकि स्वत: पूर्ण = बंद डेटा पर स्वतः पूर्ण होने से नहीं रोकता है जो स्वत: पूर्ण = बंद होने से पहले संग्रहीत किया गया था। – eloone