5

嗨,我希望我网站上的导航在访问我的网站时淡入,并在访问网站的其他页面时保持存在(即不再淡入)。

如果从同一个域访问,最好的方法是告诉 jQuery 忽略淡入效果吗?如果是这样,有人能告诉我我会怎么写这个吗?

非常感谢,加文

4

4 回答 4

16

一个不使用 cookie 的简单方法是使用 document.referrer 属性。

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

本质上,我们只是检查用户之前所在的页面是什么都没有(他们打开了一个新的浏览器窗口),还是与当前页面不在同一个域中。

于 2009-12-16T13:08:30.640 回答
5

您不能保证用户会打开 cookie 以使此解决方案正常工作。在实施之前,您必须先添加一个检查以查看 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";
    }
}
于 2009-12-16T12:20:00.650 回答
4

我能看到判断这是否是用户的第一次访问的唯一方法是存在来自您网站的 cookie 集。

这显然是不可靠的,因为用户可能关闭了 cookie,或者已经删除了它们。

您的 cookie 将在服务器端代码中检索,然后写入(例如)一个 HTML 隐藏变量,可从 JavaScript/JQuery 访问。

服务器代码的细节取决于您的服务器语言。

于 2009-12-16T12:15:58.143 回答
0

你可以使用cookies。见: http: //plugins.jquery.com/project/Cookie

于 2009-12-16T12:17:39.510 回答