2011-12-15 3 views
1

열려있는 각 탭에 대해 COOKIE를 증가시키고 싶습니다. COOKIE 변수의 관리는 PHP에서 할 것이고, 나는 그것을 분류했다. 그러나 새로운 윈도우가 열렸는지 테스트하는 방법을 알지 못한다. (Javascript 또는 Jquery). 어떤 머리 위로? 고맙습니다!창에서 COOKIE를 늘리십시오.

답변

1

새 쪽/탭이 서버 쪽에서 열렸는지 여부를 알 수 없습니다. 그러나 이미 열려있는 창에서 웹 서버로 신호를 보내는 방식으로 추측 할 수 있습니다 (예 : 매 X 초마다 아약스를 통해 페이지에서 서버에 ping).

편집 :

만 새 탭은 당신이 할 수있는 몇 가지가 있습니다 만 클라이언트 측에있다 감지하려면 : 링크/버튼

  • 사용자가 클릭, (예 : window.open() 호출을 통해) 새 창/탭을 열면 javascript에서 쿠키를 일반적으로 증가시키는 것처럼 쿠키를 증가시키고 창과 같은 위치에서 수행합니다 .open() 호출.
  • 사용자가 새 탭에서 URL을 입력하는 경우 새 창을 여는 것으로 간주됩니다 (예 : 프로그램이 창을 시작하는 데 책임이 없습니다 ... 예를 들어 앵커를 가운데/시프트 클릭 한 경우). 자바 스크립트만으로는 탐지하기가 더 어려워진다. 한 가지 방법은 local storage에 필드를 추가하고 페이지가로드 될 때 필드를 증가시키고 페이지가 닫힐 때 감소시킵니다 (언로드 이벤트 수신, 예 : window.onbeforeunload). 그런 다음 현재 열려있는 창의 수를 확인하려면 해당 필드를 읽을 수 있습니다. 불행히도 IE (6 | 7 | 8)와 같은 더 작은 브라우저에서는 작동하지 않습니다.
+0

서버 측에서하고 싶지 않습니다. Javascript 또는 Jquery는 태그가 의미하는대로 고맙습니다. – Gabriel

관련 문제