2016-11-02 34 views
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> 

我想,當用戶以「吸引」他又開了不同的標籤中,只工作/她回到我的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> 

P.S:這是個好主意嗎?有任何其他建議?我真的很喜歡開箱即用。

+0

的[檢測如果瀏覽器標籤是有源或用戶已切換遠]可能的複製(http://stackoverflow.com/questions/19519535/detect-if-browser-tab-is-active-or-user - 已切換) – madalinivascu

+0

就像旁邊 - 這將是非常惱人的行爲 –

+0

你是否聽說過Page Visibility API https://developer.mozilla.org/en-US/docs/Web/API/Page_Visibility_API –

回答

0

請試試以下腳本。

<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

沒有工作 –

+0

謝謝你的好意和努力,但仍然存在問題。當我刷新頁面時,我得到了標題中我寫過的標題標籤,就像我想要的那樣。當我打開一個不同的標籤時,你的腳本開始工作,標題開始改變,這又是我想要的。但在那之後,當我回到網站時,腳本停頓了,而不是獲得原始標題(在標題標籤之間),我得到了當我在另一個標籤中時顯示的最後一個標題。我根本沒有得到原始的傾斜背部 –

相關問題