2010-02-26 74 views
2

這是一個更新,因爲Gaby能夠幫助我解決我的問題。這現在可以運作引用具有多個ID的網址?

DEMO TIME! http://media.apus.edu/it/ref/page1.htm

簡而言之 - 當您點擊鏈接時,此代碼將動態地從第1頁發送到第3頁。爲什麼這很重要?

因爲它是第三方網站,所以我們無法在第3頁上放置分析代碼(谷歌分析)。我們現在應該能夠跟蹤第1頁(也是第三方網站)的線索,當他們點擊頁面2(我們的網站帶有谷歌分析),然後點擊第3頁的鏈接(第三方網站不能通過自定義),因爲該網站使用自己的分析代碼來跟蹤活動。

第1頁:點擊鏈接,它會帶你到第2頁

第2頁:第2頁知道你從第1頁來了,從第1頁通過引用URL第3頁,當你點擊它。此外,該鏈接被分配了一個將調用該函數的類,因爲我們無法將onclick分配給CMS中的鏈接。此外,Gaby幫助解決了讓我多次使用同一個ID的問題,現在我只需要使用分配給鏈接的類。不需要更多ID ...謝謝!這將使我能夠分配頁面上的任何鏈接來傳遞引用URL,如果它被分配了CSS類。

我確定有人會從這段代碼中受益...請傳遞它!

PS。我知道如果第1頁來自安全網站,此代碼將不起作用。

埃文

回答

1

不需要通過ID,因爲要應用到多個項目相同的邏輯來訪問元素。(和你已經通過點擊事件..訪問)

你的代碼應該是

$(document).ready(function() 
    { 
    $(".referringClass").click(function(event) 
     { 
     if (document.referrer != '') 
      { 
      var testing=document.referrer; 
      var href = $(this).attr('href'); 
      $(this).attr('href', href + "?campaign-id=" + testing); 
      } 
     } 
    ); 
}); 
+0

我測試了你的代碼,它效果很好!謝謝加比! 每個人都可以在此處測試以查看更改的工作情況。我現在可以在任何鏈接上使用這個技巧,只要它具有分配給它的CSS類。 http://media.apus.edu/it/ref/page1.htm 注:我知道,如果參照網址來自一個安全的網站這一招是行不通的。我們不能夠把分析代碼的第三頁上,但我們可以通過將其作爲一個參考URL到廣告活動ID傳遞到第三頁,所以我們現在應該知道用戶源於當他們被帶到第3頁。這是驚人的驚人的幫助謝謝! :) – Evan 2010-02-27 00:36:59

+0

@Evan,無需添加的問題標題[解決] ..你能夠接受通過點擊它左邊的複選框適合您需要的答案,這個問題就會自動標記爲已回答StackOverflow系統... – 2010-02-27 00:50:10

+0

原諒我。我更新了標題沒有它。 – Evan 2010-02-27 01:04:30

1

你可以給你的鏈接不同的類,如「specialTrick」:

$('a.specialTrick').each(function() { 
    // do the special trick 
}); 

需要注意的是依靠「引薦」是相當脆弱的,可能不是一個好主意。

+0

+1。 '注意,依託「引薦」是非常脆弱的,可能不是一個好idea.' - 更具體地說,大多數代理刪除Referer標頭和一些瀏覽器/瀏覽器插件允許你改變它到任何你喜歡的值。所以它不應該被依賴。 – 2010-02-26 15:39:30

+0

如果你看看他的源代碼,他們已經做.. – 2010-02-26 15:49:47

+0

@Gaby你說得對 - 我沒有走過去的第一頁時,我看了! – Pointy 2010-02-26 15:59:38

0

您不需要任何id的id - 當您通過className獲取元素來指定點擊時,您已經擁有了所需的一切。通過指定點擊次數,您可以訪問「this」,從而可以訪問被點擊的元素的所有屬性。

所以myTextField實際上是'this',例如

oldHref = $(this).attr('href'); 
$(this).attr('href', oldHref + "?campaign-id=" + testing); 

或類似的東西反正

0

遺憾地說,我無法測試,並在目前證實這一點,但你應該使用的事件是好的。目標

http://docs.jquery.com/Events/jQuery.Event#event.target

它會看起來像:

$(document).ready(
    function() 
    { 
     $(".referringClass").click(
      function(event) 
      { 
       if (document.referrer != '') 
       var testing=document.referrer 

       var myTextField = event.target; 
       myTextField.href=myTextField.href + "?campaign-id=" + testing; 
      } 
     ); 
    } 
)