2012-01-19 18 views
5

मैं बाहरी लिंक पर क्लिक ट्रैक करने की कोशिश कर रहा हूं ("रीडायरेक्ट पेज" का उपयोग किए बिना)।लिंक का पालन करते समय कैचिंग ईवेंट

जब कोई उपयोगकर्ता किसी लिंक, चाहे उपयोगकर्ता की परवाह किए बिना इस प्रकार मैं कैसे एक घटना पर कब्जा कर सकते हैं:

  1. वाम लिंक लिंक पर
  2. राइट क्लिक पर क्लिक करता है और एक नई विंडो में खोलने के
  3. लिंक को सक्रिय करने के लिए कीबोर्ड का उपयोग करें
  4. क्या कोई लिंक सक्रिय करने के अन्य तरीके हैं?

ऑनक्लिक ईवेंट केवल पहले पर लागू होता है।

यदि href="javascript:fireEventAndFollowLink()" सेट करना है तो उपयोगकर्ता एक नई विंडो (2) में लिंक खोलने में सक्षम नहीं होगा, इसलिए यह एक समाधान नहीं है।

उत्तर

9

एक लिंक कुछ मायनों में शुरू किया जा सकता (, पाद टिप्पणी को देखने के आधुनिक ब्राउज़रों कल्पना करते हुए):

  1. वाम क्लिक
    • <a target="_blank"> या <a target="_new"> के लिए, पृष्ठ नए टैब में लोड किया जाएगा
    • जब उपयोगकर्ता CTRL दबाता है, तो पृष्ठ नया टैब में लोड किया जाएगा।
    • जब उपयोगकर्ता SHIFT दबाता है, तो पृष्ठ नई विंडो में लोड किया जाएगा।
    • अन्य target मूल्यों के लिए, लिंक वर्तमान स्क्रीन या में लोड किया जा सकता है एक और फ्रेम
  2. Midde क्लिक
    • पेज एक नए टैब में लोड किया जाएगा, संशोधक कुंजियों की परवाह किए बिना।
  3. राइट क्लिक करें
    असंभव नहीं तो पूरी तरह से लागू करने के लिए इस विधि, अविश्वसनीय रूप से कठिन है।
    जावास्क्रिप्ट का उपयोग सीधे पता लगाने के लिए नहीं किया जा सकता है कि contextmenu में कौन सा विकल्प चुना गया है।
    • "नया (टैब, विंडो) में लिंक खोलें" चुनते समय, पृष्ठ एक नए टैब, विंडो में लोड होगा।
    • जब इनमें से किसी भी का चयन नहीं, कुछ भी नहीं लोड करता है
  4. कीबोर्ड:
    • ContextMenu (3. देख)
    • दर्ज - 1 देखें।

कैसे इन कड़ियों
वहाँ है कोई विश्वसनीय तरह से सभी लिंक की घटनाओं पर कब्जा करने पर कब्जा करने की।

  • onmouseup घटना का पता लगाने के 1, 2, और 3
    इस्तेमाल किया बटन event.button(or event.which) संपत्ति के माध्यम से ट्रैक किया जा सकता इस्तेमाल किया जा सकता। सभी गैर-आईई ब्राउज़र में, 0 = बाएं, 1 = मध्य, 2 = दाएं। आईई में, 1 = बाएं, 2 = मध्य, 4 = दाएं।
  • onclick घटना 1 और 2
    संशोधक कुंजी event.altKey और event.shiftKey गुण के माध्यम से पता लगाया जा सकता कब्जा करने के लिए इस्तेमाल किया जा सकता।
  • oncontextmenu घटना 3
  • कब्जा करने के लिए onkeydown घटना पर कब्जा करने के 4.

संशोधक कुंजियों का व्यवहार किसी भी विनिर्देश में औपचारिक रूप नहीं है इस्तेमाल किया जा सकता इस्तेमाल किया जा सकता, और इस तरह ब्राउज़र- है विशिष्ट। कम से कम फ़ायरफ़ॉक्स (कम से कम 3+) और क्रोम (सभी?) इस कुंजी व्यवहार को लागू करते हैं।

Related question - लिंक पर एक क्रिया को कैसे रोकें (<a>)?

+0

विस्तृत उत्तर के लिए धन्यवाद। मुझे लगता है कि किसी बाहरी लिंक पर क्लिक को ट्रैक करना सुनिश्चित करने का एकमात्र तरीका किसी प्रकार का "रीडायरेक्ट पेज" (Google और फेसबुक के रूप में) को लागू करना है। –

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

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