2016-11-02 13 views
2

5 초마다 웹 페이지의 제목을 반복해서 변경하려면 다음 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에 그녀를 다시는 그/그녀는 내가이 자바 스크립트가 작동 중지 할 내 사이트에 그래서 웹 페이지의 제목은 내가 제목 태그에 쓰는 것입니다.

여기 내가 원하는 것을 요약했습니다.

<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> 

피 : 이것은 좋은 생각입니까? 다른 제안이 있으십니까? 나는 상자 밖에서 생각하는 것을 정말로 좋아한다.

+0

의 가능한 복제 (http://stackoverflow.com/questions/19519535/detect-if-browser-tab-is-active-or-user -has-switched-away) – 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

친절 함과 노력에 감사드립니다.하지만 여전히 문제가 있습니다. 페이지를 새로 고칠 때 내가 원하는 제목 태그에 쓴 제목을 얻습니다. 다른 탭을 열면 스크립트가 작동하기 시작하고 제목이 바뀌기 시작합니다. 하지만 그 후 사이트로 돌아 가면 스크립트가 일시 중지되고 원래 제목 (제목 태그 사이에 있음)을 얻는 대신 다른 탭에있는 동안 보여준 마지막 제목이 표시됩니다. 원래는 기울이지 않아도됩니다. 뒤로 –