2010-04-12 21 views
9

मेरे पास शुद्ध जावास्क्रिप्ट में लिखा गया एक वेब एप्लिकेशन है (दस्तावेज़ के अलावा कोई पूर्व-जेनरेट नहीं किया गया HTML जो सभी जेएस फाइलों को लोड करता है)।ब्राउज़र में सहेजे गए पासवर्ड ऑटोफिल को कैसे ट्रिगर करें?

इस ऐप में एक लॉगिन फ़ॉर्म है जो दस्तावेज़.ready ईवेंट इवेंट ट्रिगर होने पर गतिशील रूप से बनाया गया है। मैं "पासवर्ड याद रखें" प्रदर्शित करने में ब्राउज़र को चालित करता हूं? AJAX का उपयोग करके लॉग इन करने से पहले लॉगिन फ़ॉर्म को छिपी हुई आईफ्रेम में पोस्ट करके संवाद (फ़ायरफ़ॉक्स में पासवर्ड सहेजे गए पासवर्ड सूची पर दिखाई देता है, इसलिए यह हिस्सा स्पष्ट रूप से काम करता है) लेकिन बाद में लॉग इन स्क्रीन लोड होने के बाद सुरक्षित पासवर्ड कभी भर नहीं जाते पहर। फ़ायरफ़ॉक्स और सफारी में भी यही बात होती है।

क्या ऐसा कुछ है जो मैं कर सकता हूं या कुछ फ़ंक्शन जिसे मैं ऑटोफिल ट्रिगर करने के लिए कॉल कर सकता हूं?

अपडेट: प्रारंभिक पृष्ठ लोड पर सफारी में ऑटोफिल काम करता है, लेकिन जब उपयोगकर्ता लॉग आउट नहीं होता है और लॉगिन फॉर्म को पृष्ठ रीलोड के बिना फिर से बनाया जाता है। फ़ायरफ़ॉक्स में यह कभी काम नहीं करता है।

उत्तर

4

form तत्व में फॉर्म तत्वों को लपेटने के अलावा, सुनिश्चित करें कि सभी इनपुट (और शायद यहां तक ​​कि फॉर्म) में अद्वितीय name और id विशेषताएँ परिवर्तित नहीं होती हैं। नाम शायद पासवर्ड के लिए password जैसा कुछ वर्णनात्मक होना चाहिए, वास्तव में यह सुनिश्चित नहीं है कि कौन से डिग्री ब्राउज़र इस जानकारी का उपयोग करते हैं, लेकिन यदि आप मानक नाम का उपयोग करते हैं तो "ऑटोसॉज़"/"जादू की छड़ी" सुविधाएं बेहतर काम कर सकती हैं।

और निश्चित रूप से आपको यह सुनिश्चित करना चाहिए कि आप किसी भी ऑटोसॉज़/ऑटोफिल विशेषताओं को झूठी में सेट नहीं कर रहे हैं (जेएस फ्रेमवर्क किसी कारण से ऐसा कर सकता है, यदि आप किसी का उपयोग कर रहे हैं)।

एक तीसरी संभावना यह है कि कुछ ब्राउज़र शायद आपके स्क्रिप्ट लोड से पहले ऑटोफिल करते हैं और फॉर्म को फॉर्म लिखते हैं, फॉर्म का एक स्थिर HTML संस्करण बनाने का प्रयास करें और देखें कि काम करता है।

सबसे आसान समाधान (यदि स्थैतिक रूप काम करते हैं) लॉगआउट पर एक पेज रीलोड को मजबूर करना है (आप शायद लॉग-आउट के बाद चल रहे जावास्क्रिप्ट के "राज्य" को त्यागना चाहते हैं, तो वास्तव में ताज़ा चीज वास्तव में अच्छी बात है)

+0

आप हमेशा पृष्ठ पर अपना लॉगिन फॉर्म बना सकते हैं और दस्तावेज़ तैयार होने तक ही छिपा सकते हैं .. – gnarf

+0

लॉगआउट पर पृष्ठ को फिर से लोड करने से सफारी और क्रोम में ऑटोफिल काम होता है। फ़ायरफ़ॉक्स, हालांकि, शायद एक स्थिर लॉगिन पेज की आवश्यकता होगी जिसे मैं टालने के लिए कड़ी मेहनत कर रहा था। –

0

क्या आप एक समान चाल का उपयोग नहीं कर सकते हैं - फॉर्म को लोड करने के लिए आईफ्रेम का उपयोग करें और फिर जब लॉगिन फ़ॉर्म आपको सबमिट किया जाता है, तो वास्तव में, iframe फॉर्म सबमिट करें, जिसमें सहेजा गया पासवर्ड होगा।

दृश्यमान रूप में प्रकट होने के लिए 'पासवर्ड' प्राप्त करने के लिए मुझे लगता है कि आप iframe फॉर्म में पासवर्ड की लंबाई माप सकते हैं और फिर दृश्यमान के पासवर्ड फ़ील्ड को उसी संख्या के साथ भर सकते हैं।

1

कुछ ब्राउज़र को स्थानीय उपयोगकर्ता नाम & पासवर्ड संग्रहण सक्षम करने के लिए "फ़ॉर्म" टैग की आवश्यकता होती है। AJAX एप्लिकेशन में एक ही समस्या थी, और मेरे मामले में मैंने अभी

<form>...</form> 

टैग जोड़े।