2010-02-26 76 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; 
      } 
     ); 
    } 
)