2015-09-10 72 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