2009-12-16 78 views
5

嗨我希望我網站上的導航在訪問我的網站時淡入,並在訪問網站的其他頁面時保持現狀(即不會再次淡入)。如何僅在使用jQuery訪問網站時觸發事件?

最好的方法是告訴jQuery如果從同一個域訪問時忽略淡入效果?如果有的話,有人可以告訴我怎麼寫這個?

非常感謝, 加文

+0

我想你可以說它和google很相似。從來沒有這樣想過。 :) – Mindthetic 2009-12-17 10:35:28

回答

16

一個簡單的方法來做到這一點沒有cookies是使用document.referrer財產。

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

從本質上講,我們只是檢查,看看閹頁面的用戶是在之前沒有什麼(他們已經開設了一個新的瀏覽器窗口),或者是不在同一個域作爲當前頁面。

+0

這是完美的,因爲這意味着如果用戶正在從全新頁面查看網頁,則該網站將始終消失,但如果該用戶已在網站上,則該網站將不會消失。謝謝。 – Mindthetic 2009-12-17 10:32:15

+0

警告:推薦人不可靠。 – Piskvor 2011-03-22 13:01:44

4

我可以看到告訴如果這是用戶的第一次訪問是從您的網站設置Cookie的存在的唯一方式。

這顯然不可靠,因爲用戶可能會關閉cookies或刪除它們。

您的cookie將在服務器端代碼中檢索,然後寫出(例如)一個HTML隱藏變量,可從JavaScript/JQuery訪問。

服務器代碼的細節取決於您的服務器語言。

+0

JavaScript也可以訪問cookie,不需要服務器端部分... – 2009-12-16 13:10:38

5

您無法保證用戶將啓用此解決方案的Cookie。您必須首先添加一個支票,以查看在實施之前是否啓用了Cookie。您可以使用method like this檢查是否啓用了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"; 
    } 
} 
+0

感謝您向我展示如何檢查cookie。不知道我將不得不這樣做。 – Mindthetic 2009-12-17 10:33:10

相關問題