2009-11-06 6 views
37

मैंने घंटों की खोज की है, लेकिन मुझे इसके लिए कोई समाधान नहीं मिला।मैं ऑनबर्ननलोड ईवेंट के लिए गंतव्य यूआरएल कैसे प्राप्त कर सकता हूं?

window.onbeforeunload = warn; 

यह काम नहीं करता:

function warn (e) 
{ 
    var destination = e.href; 
    alert(destination); 
} 

ठीक है, तो चीजें स्पष्ट करने के लिए। यदि उपयोगकर्ता पृष्ठ पर किसी लिंक पर क्लिक करता है, तो यह आसान है, क्योंकि आप ईवेंट पर सभी लिंक पर इवेंट हैंडलर जोड़ सकते हैं, लेकिन। मैं पता पकड़ना चाहता हूं, उपयोगकर्ता ब्राउज़र के यूआरएल बॉक्स में क्या टाइप करता है।

+0

मैं डेटा प्रोसेसिंग साइटों पर काम करता हूं और उपयोगकर्ता द्वारा पृष्ठ छोड़ने से पहले मैं सुनिश्चित करता हूं कि सभी डेटा आवश्यकताओं को पूरा करते हैं। Onbeforeunload घटना उपयोगी है, लेकिन ब्राउजर इसे संभालने के तरीके के कारण बोझिल है। मैं उपयोगकर्ता को पेज छोड़ने से नहीं रोक सकता, लेकिन यह जानना अच्छा होगा कि वे कहां जा रहे हैं। जैसा कि होता है, मेरे मामले में, मुझे पता है क्योंकि यह साइट जनरेटेड रीडायरेक्ट है, इसलिए मैं एक सत्र चर सेट कर सकता हूं। –

उत्तर

55

क्योंकि यह नहीं किया जा सकता है। नया स्थान निजी/संवेदनशील जानकारी है। कोई भी नहीं चाहता कि आप यह जान लें कि वे आपकी साइट छोड़ने पर किस साइट पर जाते हैं।

+2

मुझे लगता है कि आपको प्रश्न गलत हो गया है, यदि आप अपनी साइट पर किसी पृष्ठ पर जाते हैं तो आप फिर से लोड क्यों करेंगे? इसका कोई अर्थ नही बन रहा है। Misnyo, क्या आप स्पष्ट कर सकते हैं कि आप वास्तव में क्या चाहते हैं? –

+0

@bobince का उत्तर नीचे दिलचस्प है: http://stackoverflow.com/a/1687028/538387 – Tohid

+0

@MichelvanEngelen - b/c हो सकता है कि आप एक सीएसएस लोडिंग स्क्रीन ट्रिगर करना चाहते हैं ताकि उपयोगकर्ता को पता चल सके कि वह नेविगेट करने के लिए तैयार हो रहा है कहीं, उन्होंने वास्तव में एक लिंक पर क्लिक किया और कुछ हो रहा है (साइट को और अधिक प्रतिक्रियाशील महसूस होता है, खासकर जब किसी अन्य पृष्ठ पर नेविगेट करने में कुछ समय लगता है) – jbyrd

18

काज़ का जवाब एक दिलचस्प दृष्टिकोण है, लेकिन पृष्ठ पर नेविगेट होने पर तत्व फोकस को देखना वास्तव में विश्वसनीय नहीं है। आंशिक रूप से क्योंकि लिंक क्लिक और पृष्ठ से दूर नेविगेशन के बीच देरी होती है (जिसके दौरान उपयोगकर्ता किसी अन्य तत्व पर ध्यान केंद्रित कर सकता है, लेकिन यह भी कि एक लिंक केंद्रित हो सकता है (उदाहरण के लिए कीबोर्ड नियंत्रण या mousedown- के बिना क्लिक करें) वास्तव में पृष्ठ से नेविगेट करने के लिए इस्तेमाल किया जा रहा बिना। तो अगर आप ध्यान केंद्रित एक लिंक तो खिड़की बंद कर दिया, यह लगता है कि आप लिंक का पालन कर रहे थे।

पृष्ठ पर हर कड़ी के लिए onclick (प्लस onsubmit फँसाने प्रत्येक रूप पर) थोड़ा अधिक भरोसेमंद है, लेकिन देरी के कारण अभी भी बेवकूफ हो सकता है। उदाहरण के लिए आप एक लिंक पर क्लिक करते हैं, लेकिन फिर नए पेज लोड होने से पहले बैक बटन (या एस्केप दबाएं) दबाएं। फिर, अगर आप बंद करते हैं विंडो यह सोचती है कि आप लिंक का अनुसरण कर रहे हैं।

मैं पता पकड़ना चाहता हूं, उपयोगकर्ता ब्राउज़र के यूआरएल बॉक्स में क्या टाइप करता है।

ऐसा कोई तरीका नहीं है जो कभी भी होगा। यह एक स्पष्ट गोपनीयता संख्या नहीं है।

+3

आप सही हैं, मैंने अपना जवाब हटा दिया। –

+12

लेकिन आपने ऐसा क्यों किया। यदि आपका उत्तर पूरी तरह से सही नहीं है, तो चिंता न करें, लोगों को उनके वोट के साथ इसका फैसला करने का मौका है। लेकिन यह अभी भी अन्य लोगों के लिए उपयोगी हो सकता है। मुझे आपका "अंतिम फोकस" दृष्टिकोण देखना पसंद होता। – cprcrack

+0

सहमत - @KazenoKoe कृपया अपना उत्तर वापस जोड़ें! –

16

तुम सिर्फ क्या लिंक गंतव्य देखना चाहते हैं, तो आप उपयोग कर सकते हैं:

document.activeElement.href 

लेकिन पता पंक्ति गंतव्य हो रही संभव नहीं है।

मैंने समाधानों के बारे में सुना है जहां माउस एड्रेस लाइन तक चलता है (उपयोगकर्ता को चेतावनी देता है कि अधूरा प्रक्रियाएं हैं जिनके साथ निपटाया नहीं गया है), लेकिन इस तरह की हैक मैं चाहता हूं कभी न करें।

संबंधित मुद्दे

 संबंधित मुद्दे