Как вызвать событие при первом посещении сайта только с помощью jQuery? - PullRequest
5 голосов
/ 16 декабря 2009

Привет! Я бы хотел, чтобы навигация на моем веб-сайте постепенно исчезала при посещении моего веб-сайта и оставалась при этом (т.е. не повторялась) при посещении других страниц сайта.

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

Большое спасибо, Гэвин

Ответы [ 4 ]

16 голосов
/ 16 декабря 2009

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

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

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

5 голосов
/ 16 декабря 2009

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

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";
    }
}
4 голосов
/ 16 декабря 2009

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

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

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

Особенности кода сервера зависят от языка вашего сервера.

0 голосов
/ 16 декабря 2009

Вы можете использовать куки. Смотри: http://plugins.jquery.com/project/Cookie

...