2009-12-29 8 views
7

मैं एसडब्ल्यूएफ एप्लीकेशन कर रहा हूं जो ब्राउज़र में चलाएगा। और फ्लेक्स एप्लिकेशन फ़ोकस में होने पर मैं CTRL+F कुंजी दबाकर ईवेंट को कैप्चर करना चाहता हूं।ब्राउज़र में हॉटकी कैप्चर करें

फ़ायरफ़ॉक्स में यह ठीक काम करता है लेकिन ओपेरा और सफारी ब्राउज़र में फ्लेक्स एप्लिकेशन से पहले ईवेंट कैप्चर करता है और संवाद पॉप-अप ढूंढता है।

क्या CTRL+F ईवेंट पूर्व ब्राउज़र पर कब्जा करने के लिए फ्लेक्स एप्लिकेशन का कोई तरीका है?

उत्तर

0

शायद अपने एचटीएमएल में जावास्क्रिप्ट जोड़ें जिसमें एसएफएफ है जो इसे अवरुद्ध करेगा। ऐसा लगता है कि उन ब्राउज़रों को एक अलग क्रम में घटनाओं की प्रक्रिया की तरह लगता है, इसलिए मुझे संदेह है कि फ्लैश प्लेयर के भीतर से आप कुछ भी कर सकते हैं जो ऐसा करेगा।

0

कहाँ ई एक कुंजीपटल घटना है:

if(e.commandKey || e.ctrlKey){ 

    switch(e.keyCode){ 
     case Keyboard.N: 
      // do stuff 
      break; 
    } 
} 
2

मैं इस same question recently पूछा और इसके साथ चारों ओर खेल रहे हैं।

मैं GitHub पर इस सार के साथ आया था:

Browser KeyboardEvent Hijacking with Javascript and Flex

CTRL-F काम करता है!

वहां जावास्क्रिप्ट देखें। असल में, सफारी के साथ, आप केवल मेटा कुंजी (ctrl/alt/shift, आदि) सुन सकते हैं; अगर फ़्लैश किसी कारण से चल रहा है तो यह जावास्क्रिप्ट को ए-जेड घटनाओं को सुनने की अनुमति नहीं देगा। इसलिए मैं जावास्क्रिप्ट में मेटा कुंजियों को सुनता हूं, और फिर जावास्क्रिप्ट में window.focus() पर कॉल करता हूं। यह ब्राउज़र पर ध्यान केंद्रित करता है, जिससे आप इसे ब्राउज़र कीबोर्ड ईवेंट को हाइजैक कर सकते हैं! फिर मैं ए-जेड घटनाओं या जो कुछ भी सुनता हूं, और फ्लेक्स को पास करता हूं।

अगला चरण केवल अपने फ्लेक्स ऐप में फ़ोकस को उस स्थान पर पुनर्स्थापित करना है, जहां यह पहले था, जो आसान होना चाहिए।

चीयर्स, लांस