2009-12-16 1 views
5

안녕하세요, 내 웹 사이트를 탐색 할 때 내 웹 사이트를 탐색 할 때 페이드 인하 고 사이트의 다른 페이지를 방문 할 때 현재 상태로 유지하고 싶습니다 (예 : 다시 페이드 인하 지 않음).jQuery를 사용하여 웹 사이트를 처음 방문했을 때 이벤트를 트리거하는 방법은 무엇입니까?

jQuery가 동일한 도메인에서 방문했을 때 페이드 인 효과를 무시하도록하는 가장 좋은 방법은 없을까요? 그렇다면 누군가이 글을 어떻게 쓰는지 말해 줄 수 있습니까?

많은 감사, 개빈

+0

구글과 비슷하다고 말할 수 있습니다. 그렇게 생각하지 마십시오. :) – Mindthetic

답변

16

쿠키없이이 작업을 수행하는 간단한 방법은 document.referrer 속성을 사용하는 것입니다. 기본적으로 우리는 단지 사용자가 이전에 있던 페이지 어떠했는지를보고 확인하고

if (document.referrer == null || document.referrer.indexOf(window.location.hostname) < 0) { 
// Your code here 
} 

(그들은 새 브라우저 창을 연) 아무것도 없었다 현재 페이지와 같은 도메인에되지 않았습니다.

+0

이것은 사용자가 신선한 상태에서 페이지를 보는 경우 사이트가 항상 퇴색되지만 사용자가 이미 사이트에있는 경우에는 사라지지 않음을 의미하므로 완벽합니다. 감사. – Mindthetic

+0

주의 사항 : 리퍼러는 신뢰할 수 없습니다. – Piskvor

4

나는이 사용자의 첫번째 접근이 사이트에서 쿠키 세트의 존재입니다 경우 이야기의 볼 수있는 유일한 방법.

사용자가 쿠키를 사용하지 않도록 설정했거나 쿠키를 삭제했을 수 있으므로 분명히 신뢰할 수 없습니다.

쿠키는 서버 측 코드에서 검색된 다음 JavaScript/JQuery에서 액세스 할 수있는 HTML 숨김 변수 (예 :)에 기록됩니다.

서버 코드의 세부 사항은 서버 언어에 따라 다릅니다.

+0

자바 스크립트도 쿠키에 액세스 할 수 있으며 서버 측 부분이 필요 없습니다 ... –

5

이 솔루션을 사용하려면 사용자가 쿠키를 사용하도록 설정했다고 보장 할 수 없습니다. 먼저 실행하기 전에 쿠키가 켜져 있는지 확인해야합니다. method like this을 사용하여 쿠키가 켜져 있는지 확인할 수 있습니다.

var cookieName = 'yourcookiename'; 
$(function() { 
    checkCookie(); 
}); 

function checkCookie() { 
    if (document.cookie.length > 0 && document.cookie.indexOf(cookieName + '=') != -1) { 
      // do nothing, cookie already sent 
    } else { 
      // handle jQuery animation 

      // set the cookie to show user has already visited 
      document.cookie = cookieName + "=1"; 
    } 
} 
+0

쿠키 확인 방법을 알려 주셔서 감사합니다. 내가 이것을해야한다는 것을 알지 못했습니다. – Mindthetic