Как добавить событие onpaste в кадре в IE с помощью JavaScript?

Я хочу обработать событие вставки после нажатия вправо и выберите Вставить в IE. В качестве примера я сделал это:

 parent.document.frames["myframe"].document.attachEvent('onclick', function(e) {
      alert("paste");
});

и это работает нормально. Но когда я добавляю "onpaste" вместо "onclick", это не работает. Также я использую JavaScript, а не JQuery.

Кто-нибудь имеет представление о том, как это может работать?

Спасибо

3 ответа

Решение

Вам необходимо прикрепить обработчик событий к <body> элемент, а не документ, потому что paste событие не всплывет за пределы <body> элемент в IE. Например:

parent.document.frames["myframe"].document.body.attachEvent('onpaste', function(e) {
    alert("paste");
});

@novellino видя, что у меня нет достаточно представителей, чтобы оставить комментарий к ответу Тимса, я должен сделать это здесь. Это использует jQuery (чтение вашего комментария выглядит так, как будто вы его используете):

$("#iframeid").contents().find("body").bind('paste', function() {
  // Your code here...
});

Это работает как в IE, так и в FF, о и хром.

Я тоже пользовалась$(window).bind('paste', function(e){})"Но, как говорит Тим:

"Вставить событие не будет пузыриться за <body> элемент в IE"

Поэтому попробуйте код, который я прикрепил, который работал для меня.

Надеюсь, это поможет... Ал

Вы можете проверить это демо на quirskmode.org о том, как это сделать.

Другие вопросы по тегам