2011-06-23 23 views
17

iframe numaralı click olayında, iframe kimliğini parametre olarak alan bir işleyiciyle ilgilenmek istiyorum.iframe'e click olayı işleyicisi ekleme

ben şöyle JavaScript aracılığıyla onClick olay işleyicisi eklemek mümkün değilim ve iyi çalışıyor:

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

Ancak bu durumda ben clic() için parametre geçirmek veremiyoruz. 'u clic()'da yazdırmaya çalıştım ama sonuç yok.

onClick HTML özniteliği hiç çalışmıyor, işleyici aranmıyor.

<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

: - h (geriye dönük uyumluluk için etrafında tutan tek bir şeyi sadece kendi adıyla çerçeve pencereleri ulaşma DOM0 yolunu kullanan varsayabiliriz) sizin çerçeve erişmek için : //stackoverflow.com/users/787076/deepi) bir cevapta: 'kodunuz (üstünde verdiğiniz şey) iyi çalışıyor. Ama yan kutuda ' –

cevap

10

sen parametreleri geçirmek için kapanışları kullanabilirsiniz:

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

Ancak, ben daha iyi bir approac kullanmanızı öneririz http ([deepi] tarafından yorumladı olarak

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

teşekkürler wladimir .... u benim prblm'in yarısını çözdüm ... ama yine de bu işe yaradı. "merhaba dünyayı" geçersem, o zaman basılır, ancak bunun için.Kullanıcı kutusunda "undefinied" yazıyor: S – samach

+0

Doğru, çünkü dinleyiciyi belgeye eklediniz ve belgenin kimliği yok. Bunun yerine, ilk örneğinizde olduğu gibi, '