我使用jQuery在页面加载后5秒钟打开了一个促销窗口,例如。但是,对于在新窗口或新标签页中打开页面的人来说,这种效果就消失了。当他们到达我的标签页时,窗口将已经打开。

当人们实际上开始查看我的网站时,有什么办法可以触发这种情况?

我当时在考虑捕捉滚动或其他东西,但是人们并没有立即开始滚动,而且大多数人根本不会滚动。除此之外,我没有主意。

我不确定jQuery是否在这里提供解决方案... JavaScript?

谢谢。

最佳答案

以下应该可以解决问题..(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>


根据OP请求进行[EDIT]。

编辑代码以使示例全包

[编辑2]

上面的代码已被再次编辑,因为我们也需要处理blur事件。因此,我们将弹出窗口的代码用于其他地方,以免在两个事件中都将其复制。

[编辑3]

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

$(window).focus( function() { initiatePopup(params); } ).blur( function() { initiatePopup(params); );


并且当然更改initiatePopup以接受参数..

09-19 09:52