在选项卡/窗口处于视图中n秒后触发jQuery函数

Nec*_*ati 0 javascript jquery jquery-plugins

我正在使用jQuery在页面加载后的5秒内打开一个促销窗口.但是,对于在新窗口或新选项卡中打开页面的人来说,效果会丢失.当他们到达我的标签页时,窗口已经打开.

当人们真正开始浏览我的网站时,有没有办法解决这个问题?

我正在考虑捕捉滚动或其他东西,但人们不会立即开始滚动,大多数都不会滚动.除此之外我没有想法.

我不确定jQuery是否提供了解决方案... javascript?

谢谢.

Gab*_*oli 5

以下应该做的诀窍..(jQuery)

<script type="text/javascript">
function initiatePopup(){
    $(window).unbind('blur');
    $(window).unbind('focus');
    // do the popup
};

$(document).ready(
             function(){
                        $(window).focus( initiatePopup ).blur( initiatePopup );
                        // your other functions should go from here on

                       }
                 );
</script>
Run Code Online (Sandbox Code Playgroud)

[编辑] OP请求..

编辑的代码使示例全包

[编辑2]

上面的代码已经被重新编辑,因为我们还需要处理模糊事件..所以我们在其他地方获取弹出窗口的代码,以便不在两个事件中复制它.

[编辑3]

如果要在以后创建参数时将参数传递给弹出窗口,则将事件绑定行更改为

$(window).focus( function() { initiatePopup(params); } ).blur( function() { initiatePopup(params); );
Run Code Online (Sandbox Code Playgroud)

当然,更改initiatePopup接受参数..