16 votes

Événement keydown sur un iframe

Comment puis-je obtenir l'événement keydown sur iframe?

21voto

James Points 40024

Vous devez accéder au document de l'iframe à travers l'objet ContentWindow

$(document.getElementById('IFrameId').contentWindow.document).keydown(function(){ alert('Touche enfoncée!'); });

Assurez-vous de lier l'événement après que le frame ait chargé.

5voto

Ahmed Points 5613

Ajout d'un gestionnaire d'événements à un iframe en utilisant JQuery

$(document.getElementById('iframe_id').contentWindow.document).keydown(function() {
    // ma fonction
});

1voto

Hamid Talebi Points 447

Il est tellement tard pour répondre mais peut-être utile pour quelqu'un.
J'ai le même problème, cela signifie que j'ai un iframe à l'intérieur d'une page HTML dans un même domaine.
Maintenant j'ai besoin de capturer l'événement keyup.
Cependant je ne veux pas (ou parfois je ne peux pas) écrire de script à l'intérieur du corps de l'iframe.
Pour le faire, j'utilise le script ci-dessous pour détecter quel est l'id parent de l'élément sélectionné par un clic dessus.

 $(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'));
                }
            }); 

Ce code a résolu mon problème.
j'espère qu'il sera utile.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X