2010-11-26 10 views
0

Je peux lier des événements dans la fenêtre actuelle, mais j'utilise TinyMCE qui crée un iframe, et je veux pouvoir définir un keybind à la fenêtre iframe pour capturer un contrôle-Sjquery Lier un iframe (tinymce)

Je:

$(window.child).keydown(function(e) { 
    if(!args) args=[]; // IE barks when args is null 
    if(e.keyCode == key.charCodeAt(0) && e.metaKey) { 
     callback.apply(this, args); 
     return false; 
    } 
}); 

Mais ce ne fonctionne pas. Des idées?

Merci

Répondre

0

Il est d'abord un problème de timing, quand pour accéder au iframe.

Si vous le liez quelque part dans le document parent, il se peut que le document à l'intérieur de l'iframe ne soit pas encore chargé. Donc, je suggère de l'assigner directement à l'événement onload de l'iframe, pour être sûr qu'il est accessible. En outre, cela dépend du navigateur, comment vous obtiendrez un pointeur pour le document:

<iframe onload="fx(this)" src="some.html" ></iframe> 
<script type='text/javascript'> 
function fx(win) 
{ 
    var doc=win.contentDocument||win.contentWindow.document; 
    $(doc).keypress(
     function(event) 
     { 
     alert(event.charCode||event.keyCode); 
     }); 
} 
</script> 
0
$(document.iframe1.contentWindow.document).keydown(...); 

iframe1 est un iframe

+0

iframe1 est un nom d'identification ou? – AnApprentice

+0

Ce erreurs "Uncaught TypeError: Impossible de lire la propriété 'contentWindow' de indéfini" – AnApprentice