2017-06-14 77 views
0

我知道使用隱藏的iframe(零高度,display:none等)不是一個好主意,用於跟蹤用戶,因爲如果他們沒有被渲染,他們的內容通常不會被調用。隱藏iframes和Google TagManager

那麼爲什麼Google TagManager使用隱藏所有可能方式的iframe(顯示:none,visibility:hidden,width:0,height:0)?

+0

由於我們對Google的決策制定過程沒有深入的瞭解(加上隱藏的iframe內容未加載的概念應該使用源代碼或測試用例進行備份),因此我正在投票結束此問題。 –

+0

如果這個問題離題,我會很抱歉,但實際上我不這麼認爲。 無論如何,我想知道爲什麼許多開發人員使用1x1 iframe而不是0x0 iframe,如果沒關係 – basellone

+0

當我(或任何人)投票結束時,它是(我的)意見的陳述 - 這並不意味着你的這肯定是一個壞問題,它不是對你的角色的攻擊,它並不意味着密切的投票總是正確的。因此,如果沒有至少五個人支持,他們無需爲緊密的選票辯護,但無論如何都不相關。這只是爲了在未來爲你節省一些時間:-)。 –

回答

0

如果你正在談論的跟蹤代碼GTM:

<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 
})(window,document,'script','dataLayer','GTM-XXXXXX');</script> 

其中有一個iframe:

<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-XXXXXX" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 

此iFrame是沒有啓用JavaScript誰也用戶。如果客戶端的瀏覽器已經禁用了JS,瀏覽器不會在script標籤內執行JS,他只是在noscript標籤內呈現html。

瀏覽器只會呈現隱藏的iframe,並會嘗試加載此網址。

+0

「瀏覽器只會呈現隱藏的iframe,並會嘗試加載此url」,這就是要點:某些瀏覽器不會加載隱藏的iframe的內容! – basellone

+0

@basellone我很確定所有的瀏覽器都會對iframe上'src'屬性指定的URL執行GET請求,即使它是隱藏的,這通常都是跟蹤所需的。 –

+0

感謝您的反饋Mikael! 如果是這樣,你知道爲什麼通常開發人員使用1x1 iframe而不是0x0 iframe嗎? – basellone