检测新选项卡处于活动状态并运行按钮计时器

时间:2016-08-14 00:56:14

标签: javascript jquery html5 iframe

嘿,我有一个水龙头网站。我创建了一个iframe(使用' iframeTracker-jquery-master')当任何人点击新标签中的iframe打开广告并显示"声明"按钮。但我正在尝试声明按钮等待20sc后点击iframe和新标签打开。如果用户在20sc之前关闭新选项卡,则禁用该按钮需要再次重新加载页面。

Js代码检测iframe点击

jQuery(document).ready(function($){
    // iframe
    $('.adbit-display-ad').iframeTracker({
        blurCallback: function(){
            $('<div class="consoleDebug">').html('<input type="submit" id="get" class="btn btn-primary btn-lg" value="Get!">').appendTo('#consoleDebug').delay(3000);
        }
    });
});

我可以通过此代码检测窗口是否处于活动状态

$.windowActive = true;

$.isWindowActive = function () {
    return $.windowActive;
};

$(window).focus(function() {
    $.windowActive = true;
});

$(window).blur(function() {
    $.windowActive = false;
});

现在如何使用按钮添加此代码?此代码仅检测用户是否在此,但我如何从我的站点检测到新选项卡处于活动状态,然后运行此按钮计时器

function startTimer(seconds) {
    var buttons = $("input[type=submit]").add("button").not(".navbar-toggle");
    buttons.each(function(i, button) {
        button = $(button);
        var org_text = button.text();
        if(!org_text) org_text = button.val();

        button
            .prop("disabled", true)
            .text(seconds)
            .val(seconds);

        var i = setInterval(function() {
            seconds -= 1;
            if(seconds <= 0) {
                clearInterval(i);
                button
                    .prop("disabled", false)
                    .text(org_text)
                    .val(org_text);
            } else {
                button.text(seconds).val(seconds);
            }
        }, 1000);

        window.disableButtonTimer = function() {
            clearInterval(i);
        };
    });
}

0 个答案:

没有答案