首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >有没有办法通过setInterval()函数返回布尔值?

有没有办法通过setInterval()函数返回布尔值?
EN

Stack Overflow用户
提问于 2019-04-25 01:56:24
回答 1查看 350关注 0票数 0

我正在做一个视频播放器项目,我正在使用videojs和videojs-ima作为广告预滚动。

我终于想出了一种方法来判断是否存在广告;但是,我尝试返回一个布尔值truefalse,以告知何时运行和执行某个代码块。

这是我的代码,它目前并不像它的目的那样工作。

代码语言:javascript
复制
if (navigator.userAgent.match(/iPhone/i) ||
    navigator.userAgent.match(/iPad/i) ||
    navigator.userAgent.match(/Android/i)) {

    let checkAd = document.querySelectorAll('.ima-ad-container');

    let checkAdLoop = setInterval(() => {
        for (let i=0; i < checkAd.length; i++) {
            if (checkAd[i].style.display == 'none') {
                console.log('Ad is NOT playing.');
                return false;
            } else {
                console.log('Ad is playing.');
                return true;
                // do nothing
            }
        }
    }, 1000);
    player.on('touchend', () => {
        if (player.paused() && checkAdLoop() == false) {
            player.play();
        } else if (player.currentTime > 0 && checkAdLoop() == false) {
            player.pause();
        }
    });
    $('.vjs-icon-placeholder').on('touchend', () => {
        if (player.paused() && checkAdLoop() == false) {
            player.play();
        } else if (player.currentTime > 0 && checkAdLoop() == false) {
            player.pause();
        }
    });
}

如果有人能帮助我理解并向我解释为什么这不起作用,我会很高兴的。我该如何着手解决这个问题呢?

我知道我已经很接近了。提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2019-04-25 03:39:32

这是一个经典的XY问题。

试图解决一个与整体情况无关的问题。

下面是可以工作的代码,以及我是如何以不同的方式处理它的。

代码语言:javascript
复制
if (navigator.userAgent.match(/iPhone/i) ||
    navigator.userAgent.match(/iPad/i) ||
    navigator.userAgent.match(/Android/i)) {

    let checkAd = $('.ima-ad-container');

    player.on('touchend', () => {
        if (checkAd.css('display') != 'none') {
            console.log('Ad is playing.');
            // do nothing
        } else if (checkAd.css('display') == 'none') {
            console.log('Ad is NOT playing.');

            if (player.paused()) {
                player.play();
            } else {
                player.pause();
            }
        }
    });
    $('.vjs-icon-placeholder').on('touchend', () => {
        if (checkAd.css('display') != 'none') {
            console.log('Ad is playing.');
            // do nothing

        } else if (checkAd.css('display') == 'none') {
            console.log('Ad is NOT playing.');

            if (player.paused()) {
                player.play();
            } else {
                player.pause();
            }
        }
    });
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55835948

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档