Более простой способ узнать, когда пользователь нажимает на любой iframe? - PullRequest
2 голосов
/ 24 августа 2011

Когда пользователь нажимает на внешний iframe, все прослушиватели событий на моем теге BODY перестают работать, и мне нужно предложить пользователю щелкнуть снаружи, чтобы восстановить «фокус» на теге body.

Но знать, когда пользователь нажимает на iframe, на самом деле очень сложно.

Я знаю два способа узнать, когда происходит клик по фрейму:

1- Наложение прозрачного элемента div на элемент iframe (с обратной стороной, которую пользователь должен щелкнуть дважды, чтобы фактически щелкнуть элемент iframe).

2 - очень грубый обходной путь, при котором вход постоянно фокусируется и определяет, когда он теряет фокус. Но даже глупо даже подумать о его реализации.

Есть ли другой способ узнать, когда пользователь «теряет фокус» основного тела, нажимая на внешний фрейм?

Ответы [ 2 ]

0 голосов
/ 07 октября 2011

Самый простой и единственный метод, который мне известен, - это создать бесконечный цикл, который получает фокусированный элемент element.id.

Тогда это просто вопрос сравнения этого идентификатора с вашими фреймами, чтобы узнать, на что нажали.

Обратите внимание, что вы сможете точно знать, что пользователь щелкнул один раз в фрейме, но впоследствии нет возможности подсчитать количество кликов. Также отмечает, что iframes могут сосредоточиться с помощью этого метода будет неотличима от щелчка.

0 голосов
/ 24 августа 2011

Это очень просто, но не обязательно эффективно / этично.

setTimeout(function(){
  document.body.focus() 
}, 100 );

Я бы честно использовал вариант № 2 с некоторыми jQuery.

$(el).focusout(function(){
  $(this).focus();
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...