顶级窗口焦点/模糊事件

时间:2011-11-04 23:39:06

标签: javascript jquery events


我有一个简单的框架集,如

<frameset  rows="100, 200">
    <FRAME name="listener" src="frame1.html">
    <FRAME name="content" src="http://www.someexternalurl.com/">
 </frameset>

在听众表单中试图听顶部窗口焦点/模糊:

<body>

<div id="szamlalo">30</div>

</body>
<script type="text/javascript">
var inFocus = true;
var counter = 30;
var timer;
$(document).ready(function(){
    $(window.top).focus(function(){
    //$(window.top).focusin(function(){
        inFocus = true;
    });
    $(window.top).blur(function(){
    //$(window.top).focusout(function(){
        inFocus = false;
    });
    timer = window.setInterval("countdown()",1000);
});
function countdown()
{
    if (counter > 0)
    {
        if (inFocus)
            counter--;
    }
    else
    {
        window.clearInterval(timer);
        window.location.href='masik_oldal.html';
    }
    $('#szamlalo').html(counter);
}
</script>

但是主要的浏览器都是以不同的方式处理它,而Opera是唯一按预期工作的浏览器。在IE中根本没有收到模糊,chrome和firefox只收到它一次......这只是不同的js引擎实现,还是jquery中的东西?或者我在某个地方犯了错误? 谢谢你的想法

1 个答案:

答案 0 :(得分:0)

事件不会使框架集树冒泡。您需要为每个窗口(框架)安装单独的处理程序