iframe

2011-06-23 25 views
17

पर क्लिक इवेंट हैंडलर जोड़ना मैं ईवेंट को iframe पर एक हैंडलर के साथ संभालना चाहता हूं जो पैरामीटर के रूप में iframe की आईडी प्राप्त करता है।iframe

मैं और इस प्रकार जावास्क्रिप्ट के माध्यम से एक onClick ईवेंट हैंडलर जोड़ने में सक्षम हूँ यह ठीक काम करता है:

iframe.document.addEventListener('click', clic, false); 

लेकिन इस मामले में मैं clic() के लिए एक पैरामीटर पास नहीं कर पा रहा हूँ। मैंने को clic() में प्रिंट करने का प्रयास किया लेकिन कोई परिणाम नहीं।

onClick एचटीएमएल विशेषता बिल्कुल काम नहीं करती है, हैंडलर को नहीं कहा जाता है।

<html> 
<head> 
<script type="text/javascript"> 
function def() { 
    myFrame.document.designMode = 'on'; 
} 
function clic(id) { 
    alert(id); 
} 
</script> 
</head> 
<body onLoad="def()"> 
<iframe id="myFrame" border="0" onClick="clic(this.id)"></iframe> 
</body></html> 
+0

के रूप में (द्वारा [deepi] http टिप्पणी की : //stackoverflow.com/users/787076/deepi) एक उत्तर में: 'आपका कोड (जो आपने शीर्ष पर दिया है) ठीक काम कर रहा है। लेकिन यह काम कर रहा है जब आप सीमा पर बिल्कुल क्लिक नहीं करते हैं, ' –

उत्तर

10

आप पैरामीटर पास करने के बंद होने का उपयोग कर सकते हैं:

iframe.document.addEventListener('click', function(event) {clic(this.id);}, false); 

हालांकि, मैं सुझाव है कि आप एक बेहतर approac का उपयोग ज अपने फ्रेम तक पहुंचना है (मैं केवल यह है कि आप उनके नाम से फ्रेम खिड़कियों तक पहुँचने का रास्ता dom0 उपयोग कर रहे हैं यह मान सकते हैं - कुछ है कि केवल पश्च संगतता के लिए चारों ओर रखा):

document.getElementById("myFrame").contentDocument.addEventListener(...); 
+0

धन्यवाद wladimir .... तुमने मेरे prblm का आधा हल किया ... लेकिन अभी भी यह.आईडी काम कर रहा है। अगर मैं "हैलो वर्ल्ड" पास करता हूं तो यह मुद्रित हो जाता है लेकिन इसके लिए। यह चेतावनी बॉक्स में "अनिश्चित" कहता है: एस – samach

+0

ठीक है, ऐसा इसलिए है क्योंकि आपने दस्तावेज़ में श्रोता जोड़ा - और दस्तावेज़ में आईडी नहीं है। आप संभवतः इसे '