2011-06-02 59 views
1

目前正在使用某些分頁使用ajax的東西。我想要做的是添加像referal = 3到某些鏈接的結尾,然後當他們去那個鏈接我會插入一個後退按鈕與窗口的位置,例如:if window.location.href裏面有'sometext' - 做這個

用戶使用ajax分頁,進入第3頁,我將添加REF = 3的鏈接或東西的末尾,以便它想這樣的:?

http://foo.com/somepage/?ref=3

(不知道這是做這件事的corrent方式)

然後用戶點擊該鏈接,我會在該頁面上追加一個後退按鈕。

所以,當他們使用生成的按鈕返回到主頁window.location.href將是:

http://foo.com?ref=3

的想法是,當他們單擊後退按鈕,Ajax的分頁將加載到第3頁。

我不知道如何解釋這個,但有人知道我會怎麼去做一個條件語句依賴於window.location.href?

+0

那麼一個問題是,有沒有什麼可以做,以防止有人點擊** **真正的「後退」在他們的瀏覽器按鈕... – Pointy 2011-06-02 12:24:37

+0

@Pointy嗯是的,我知道,但是這有什麼好用戶點擊** real **後退按鈕。 – daryl 2011-06-02 12:25:14

+0

看來你試圖跟蹤用戶通過你的網站的點擊流量,這是否正確? – Stephen 2011-06-02 12:26:34

回答

3

要找到一個如果URL中包含了一些字符串:

if (document.location.href.search("ref=3")!=-1){ 
alert('got ref=3'); 
} 
+0

。索引是比較主流的,不是? – mplungjan 2011-06-02 12:40:00

+0

@mplungjan我想他會有不止一個不同的裁判,所以他可以讓正則表達式匹配任何他打算放在那裏。如果不是這樣,那麼是的,'indexOf'會更合適。 – Niklas 2011-06-02 12:41:03

+0

什麼是indexOf? – daryl 2011-06-02 12:43:25

0

我不確定我完全理解你想要做什麼,但它聽起來像你想使用location.hash屬性。

使用jQuery插件(如hashchange),您可以添加ajax調用瀏覽器的歷史記錄。另外,所有頁面都可以收藏。這是一個相當廣泛的主題,但我提供的鏈接應該讓你開始。

+0

Nah並不完全符合我的要求,尤其是訴諸插件 - 這對我來說只是一個很大的問題。不管怎麼說,還是要謝謝你! – daryl 2011-06-02 12:44:37

1

您可以使用此函數來獲取查詢字符串的部分:

function getQueryString(variable){ 
    // Grab the query string part of the URL (everything after the ?) 
    var query = window.location.search.substring(1); 

    // If you don't specify which value you want, return the whole thing 
    if(!variable) return query; 

    // Split the query string to key=value pairs into an array 
    var vars = query.split('&'); 

    // Loop through them to find the one we're looking for 
    for (var i = 0; i < vars.length; i++){ 
     // Split key and value 
     var pair = vars[i].split('='); 

     // If the key matches our parameter, return the value 
     if (pair[0] == variable){ 
      return pair[1]; 
     } 
    } 
    // If not found, return empty string 
    return ''; 
} 

然後你就可以得到價值爲字符串由:

var value = getQueryString('ref'); 

// Conditional code if it is a certain value, do something 
if(value === '3'){ 
    // Do something 
} 

您還可以通過使用parseInt()把它作爲一個數字:

var value = parseInt(getQueryString('ref'), 10); 

if(value === 3){ 
    // Do something 
} 
+0

請注意詳細說明這是如何工作的?你明顯比jQuery更好lol – daryl 2011-06-02 13:36:02

+0

@tfbox:這是簡單的舊javascript。我在代碼中添加了一些註釋,查看我編輯的答案。您只需傳遞關鍵字,然後返回其值。它也可以處理多個URL獲取參數,例如'http // example.com/index.php?ref = 3&something = 2'。儘管如此,它並沒有對編碼做任何事情。測試它,看看它是否有效。 :) – DarthJDG 2011-06-02 14:45:43