2009-07-29 16 views
8

पर कीडाउन ईवेंट I iframe पर कीडाउन ईवेंट कैसे प्राप्त कर सकता है?आईफ्रेम

+0

यह उत्तर मेरे लिए काम करता है: http://stackoverflow.com/questions/26324213/listen-for-mouse-click-and-keypress-events-within-iframe/39617876#39617876 –

उत्तर

12

आप iframe के दस्तावेज है जो ContentWindow वस्तु के माध्यम से है

$(document.getElementById('IFrameId').contentWindow.document).keydown(function(){ alert('Key down!'); }); 

सुनिश्चित करें कि आप घटना के बाद फ्रेम लोड होने के लिए बाध्य बनाने का उपयोग करने की जरूरत है।

+5

इसके अलावा, सुनिश्चित करें कि फ्रेम लोड होने के बाद आप ईवेंट को बाध्य करते हैं, अन्यथा यह आग नहीं होगी – claviska

+0

@ एक्साइवल बेशक, मेरे दिमाग को रैकिंग कर रहा है कि यह उम्र के लिए क्यों काम नहीं करता है। – Ally

+1

@RedHouse मैंने उस बिंदु को स्पष्ट करने के लिए उत्तर अपडेट किया है (मैंने सोचा था कि लोगों के देखने के लिए अक्साइवल की टिप्पणी स्पष्ट होगी) – James

0

उत्तर देने में बहुत देर हो चुकी है लेकिन शायद किसी के लिए उपयोगी है।
मुझे एक ही समस्या है, इसका मतलब है कि मेरे पास iframe inside a HTML पृष्ठ same domain में है।
अब मुझे Esc keyup event प्राप्त करने की आवश्यकता है।
हालांकि मैं आईफ्रेम बॉडी के अंदर किसी भी स्क्रिप्ट को लिखने के लिए नहीं चाहता (या कुछ बार मैं नहीं कर सकता)।
ऐसा करने के लिए, मैं नीचे दिए गए स्क्रिप्ट का उपयोग यह पता लगाने के लिए करता हूं कि उस पर क्लिक करके चयनित तत्व की मूल आईडी क्या है।

$(window).load(function() { 
      jQuery(jQuery('[id="frame"]')[0].contentWindow.document).on('keyup', function (e) { 

       var _currntItem = ($(e.target)) 

       if (e.keyCode === 27) { 
        alert(_currntItem.parent().attr('id')); 
       } 
      }); 

इस कोड ने मेरी समस्या का समाधान किया।
उपयोगी होने की उम्मीद है।

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