2016-07-10 4 views
0

브라우저 창을 사용자가 볼 수 있는지 감지하는 방법이 있습니까? 나는 이것이 전에 물어 본 것을 안다. 그러나 내가 본 답변은 다음과 같은 문제로 고통 : visibilityChange 이벤트를 사용브라우저 창을 사용자가 볼 수 있는지 감지하는 방법이 있습니까?

  1. . 이 방법의 문제점은 cmd + tab을 사용하여 응용 프로그램간에 전환 할 때 (적어도 Mac에서는)이 이벤트가 발생하지 않는다는 것입니다.

  2. onBluronFocus 이벤트를 사용하십시오. 이것들은 위의 문제를 해결합니다. 그러나 페이지 가시성이 변경되지 않을 때도 실행됩니다. 예를 들어 브라우저가 화면의 절반에서 열리고 다른 응용 프로그램이 다른 절반에서 열리는 경우 이들 사이를 전환하면 이러한 이벤트가 시작됩니다. 사용자가 항상 브라우저 창을 볼 수는 있습니다.

  3. onPageShowonPageHide 이벤트를 사용하면 이러한 것들이 가시성 작업에별로 도움이되지 않습니다. 예를 들어, onPageHide은 페이지가 최소화되거나 cmd + 탭을 사용하여 전체 창을 차지하는 다른 응용 프로그램으로 전환 할 때 실행되지 않습니다.

위의 문제가 주어진 페이지가 사용자에게 표시되는지 확인하기위한 이상적인 솔루션은 무엇입니까?

감사합니다.

+1

어떤 경우에 '창'이 보이지 않을 수 있습니까? – guest271314

+0

@ guest271314 분명히 진술 한 것 같습니다. 모든 질문을 읽었습니까? – hcoat

+0

@hcoat 예, 질문을 읽어보십시오. 아직 "보이는"것에 대해서는 확실하지 않지만 포함되거나 제외됩니까? 'window'가 열려 있으면'' 요소에서'display'가'none'으로 설정되었지만'window'가 "visible"으로 간주되어야합니까? 'window' 차원이''1px''''''''''''''visible''으로 간주되어야합니까? 질문에 "가시적", "보이지 않음"의 예를 포함시킬 수 있습니까? – guest271314

답변

-1

setIterval 폴링 및 document.hidden을 사용할 수 있습니까?

멋진 래퍼 Visibility.js

+0

그 담당자와 함께, 분명히 질문에 올바르게 대답하는 방법을 알고 있습니다. – Li357

+0

포스터는 페이지 가시성 API를 분명히 알고 있습니다. 질문은 mac + cmd + 탭에서 이벤트를 트리거하지 않습니다. 이벤트가 발생하지 않으면 내 질문은 문서 값이 단순 폴링에서이를 폴백으로 표시하는지 여부입니다. - 질문에 대답하지 않지만이를 시도 할 수 있는지 묻습니다 .- 주석으로 처리해야합니다. 대신에? – Steve

+0

이것은 주석으로서 더 좋았을 것입니다. 대답은 "시도하십시오"보다 더 많은 자신감을 가져야합니다. –