2014-03-07 24 views
0

在我們的Angular.js項目中,當發佈本地化內容時,我遇到了一個問題,也就是說,如果本地化HTML字符串中存在本地的-s,谷歌分析打破他們。谷歌Analytics(分析)打破了Angular.js項目中的發射鏈接

特別是,就在那一刻我點擊鏈接(帶有鼠標按鈕)改變

<a href="https://my-site.com/#!/path/to/somewhere"> 

成類似

<a href="https://my-site.com/?_ga=1.42271222.21175886562.1384128808#!/path/to/somewhere"> 

。在檢查DOM時,我可以看到我尚未觸及的鏈接完全有效,而我右鍵單擊以選擇「檢查」彈出式菜單項的鏈接以上述方式中斷。

UPD:問題解決了。 解決方案:儘可能使用相對鏈接。如果您正在調試您的站點,其地址與真實地址不同,因此在調試版本中,顯式地將實際站點地址的絕對鏈接視爲跨域。

尤其是上面的鏈接

<a href="https://my-site.com/#!/path/to/somewhere"> 

應該已經改爲

<a href="/#!/path/to/somewhere"> 

回答

1

這看起來像您正在使用跨網域跟蹤與GA(_ga is the parameter that is used when "linking" domains,它承載了客戶端ID) 。 ga代碼中是否啓用了任何裝飾器/自動鏈接功能?我認爲Gas自動鏈接功能不會將錨點識別爲url路徑的一部分,並將鏈接參數插入到域和錨點之間。

如果您需要跨域跟蹤,可以嘗試不使用自動鏈接,而是手動檢索客戶端ID並將其附加到URL的末尾。

如果您未使用跨域跟蹤,則應發佈與分析相關的代碼,可能會出現某些配置錯誤。

+0

確實,問題是由於GA試圖將其跨域跟蹤邏輯應用於我的鏈接引起的。唯一讓我困惑的是,所有鏈接都應該導致我們自己的網站,根本沒有跨域目的地。經過一番研究,發現發射器代碼中存在一些絕對鏈接,當然,在本地調試時,站點地址爲localhost:%port%/,因此my-site.com的鏈接被認爲是交叉-域。 – Thehx

相關問題