更容易了解用户何时点击任何iframe?

时间:2011-08-24 03:56:09

标签: javascript events iframe

当用户点击外部iframe时,我的BODY标记上的所有事件侦听器都停止工作,我需要提示用户点击外部以重新获得"焦点"在身体标签上。

但是知道用户点击iframe的时间实际上非常困难。

我知道有两种方法可以知道何时点击iframe:

1-在iframe上重叠透明div(用户必须单击两次才能实际点击iframe)。

2-一个非常粗略的解决方法,即始终自动聚焦输入并检测何时失去焦点。但即使考虑实施它也是愚蠢的。

还有另一种方法可以知道用户何时失去焦点"单击外部iframe的主体?

2 个答案:

答案 0 :(得分:0)

这非常简单,但不一定有效/道德。

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

我会诚实地使用选项#2和一些jQuery。

$(el).focusout(function(){
  $(this).focus();
})

答案 1 :(得分:0)

最简单的方法,也是唯一一个我真正意识到的方法是创建一个无限循环来获取当前聚焦的元素.id。

然后,只需将该ID与您的iframe进行比较即可知道哪些已被点击。

请注意,您只能确定用户在iframe中点击了一次,但之后无法计算点击次数。另请注意,iframe可以通过此方法自行关注,与点击无法区分。