2015-09-10 47 views
2

我正在尝试获取源代码中链接的URL。挑战在于URL隐藏在图像后面,因此只能让我获取图像url。Google Tag Manager - CSS选择器挑战

我一直在试图通过在触发器系统中使用新的CSS选择器来解决这个问题,并且还创建了一个DOM变量,该变量应该在点击图像时获取URL。也可以有多个下载。

这里是什么,我想实现一个例子:

<div> 
<div class="download"> 
    <a href="example.com/The-URL-I-Want-to-get-if-top-image-is-clicked.pdf" target="_blank"> 
    <img src="some-download-image.png"/></a> 
<div class="download"> 
    <a href="example.com/Another-URL-I-Want-to-get-if-middle-image-is-clicked.pdf" target="_blank"> 
    <img src="some-download-image.png"/></a> 
<div class="download"> 
    <a href="example.com/Last-URL-I-Want-to-get-if-bottom-image-is-clicked.pdf" target="_blank"> 
    <img src="some-download-image.png"/></a> 
</div> 
</div> 

有多少代码之上,这下面的代码片段,但选择它应该是很容易得到我想要的信息。只有我没有。

如果有人遇到了这堵墙并解决了它,我真的很想知道如何。 :)

+0

您是否尝试过抓取{{Click Element}}变量的href属性?因此,无论点击哪个链接,您的gtm.linkClick事件都会与点击元素相关联。您可以通过分析从链接点击创建的dataLayer对象来检查开发控制台。 – nyuen

+0

@nyuen我一定会尝试。我想我实际上尝试了类似的东西,但第二次是魅力:) – Gaute

+0

你能提供一个链接到网站,以便我可以看看吗? – nyuen

回答

4

这是一个可能的解决方案。因此,据我了解,当你点击“下载”图像时,你想获取锚点元素的href属性。

一个自定义JavaScript变量将需要创建,这样你可以操纵点击元素对象:

function(){ 
    var ec = {{Click Element}}; 
    var href = $(ec).closest('a').attr('href'); 
    return href; 
} 

所以,你需要做你的尽职调查,并添加您的错误检查和东西,但基本上这应该返回给你的href,然后你将需要解析字符串来提取你需要的部分。

+0

太棒了!我整天都把头发都撕了。感谢您的优雅和有效的解决方案! :) – Gaute

+0

没问题,当你年龄大了的时候保存脱发。 ;) – nyuen