首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让一段Javascript仅在用户处于不同的选项卡上时才能工作?

如何让一段Javascript仅在用户处于不同的选项卡上时才能工作?
EN

Stack Overflow用户
提问于 2016-11-02 17:00:20
回答 1查看 48关注 0票数 2

我有下面的javascript,让网页标题每隔五秒就会一次又一次地改变。

代码语言:javascript
复制
<script>
        var titleArray = ["TITLE-1","TITLE-2","TITLE-3","TITLE-4"];
        var N = titleArray.length;
        var i = 0;
        setInterval(func,5000);
        function func(){
            if (i == 4) {
                i = 0;
            }
            document.title = titleArray[i];
            i++;
        }

</script>

我希望它只工作时,用户已经打开了一个不同的标签,以便“吸引”他/她回到我的标题他/她在我的网站上,我希望这个javascript停止工作,所以网页的标题是什么,我只是写在site.While标签。

这是我想要的东西的摘要。

代码语言:javascript
复制
<script>
if (the user is not on this tab but has opened and is using a different tab)
{the javascript I have mentioned above};
elce {nothing so the title tags work};
</script>

附言:这是个好主意吗?还有其他的建议吗?我真的很喜欢跳出框框去思考。

EN

回答 1

Stack Overflow用户

发布于 2016-11-02 17:11:13

请尝试使用以下脚本。

代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script type="text/javascript">
    var isActive;

    window.onfocus = function () { 
      isActive = true; 
    }; 

    window.onblur = function () { 
      isActive = false; 
    }; 

    // test
    var titleArray = ["TITLE-1","TITLE-2","TITLE-3","TITLE-4"];
    var N = titleArray.length;
    var i = 0;
    function changeTitle(){
        if (i == 4) {
            i = 0;
        }
        document.title = titleArray[i];
        i++;
    }

    setInterval(function () { 
      if(window.isActive !== true){
        changeTitle();
      }
    }, 1000);
</script>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40375894

复制
相关文章

相似问题

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