2009-12-16 2 views
5

Привет, я хотел бы, чтобы на моем веб-сайте менялась планка при посещении моего веб-сайта и оставалась на месте (т. Е. Не исчезала снова) при посещении других страниц сайта.Как вызвать событие при первом посещении веб-сайта только с помощью jQuery?

Будет ли лучший способ достичь этого, чтобы указать jQuery игнорировать эффект затухания, если вы посещаете тот же домен? Если это может кто-то сказать мне, как я это написал?

Большое спасибо, Gavin

+0

Я полагаю, вы могли бы сказать, что это похоже на google. Никогда об этом не думал. :) – Mindthetic

ответ

16

Простой способ сделать это без cookies использует свойство document.referrer.

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

По сути, мы просто проверяя погоду на странице пользователь был на прежде, чем не было ничего (они открыли новое окно браузера) или не на том же домене, что и текущая страница.

+0

Это было прекрасно, потому что это означает, что сайт всегда будет исчезать, если пользователь просматривает страницу из свежих, но не если пользователь уже находится на сайте. Благодарю. – Mindthetic

+0

caveat: referrer ненадежен. – Piskvor

4

Единственный способ, которым я могу видеть, чтобы говорить, если это первый доступ пользователя является наличие множества печенья с вашего сайта.

Это, очевидно, не является надежным, так как пользователь может отключить cookies или удалить их.

Ваш файл cookie будет извлечен в код на стороне сервера, а затем выписан (например) скрытой переменной HTML, доступной из JavaScript/JQuery.

Спецификация кода сервера зависит от вашего языка сервера.

+0

JavaScript может также получить доступ к куки, не нужно для части сервера ... –

5

Вы не можете гарантировать, что у пользователя будут отключены cookies. Вам нужно будет сначала добавить проверку, чтобы убедиться, что файлы cookie включены, прежде чем внедрять. Вы можете проверить, включены ли файлы cookie, используя 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

Спасибо, что показал мне, как проверить файлы cookie. Не знал, что мне придется это делать. – Mindthetic