为什么谷歌标记管理器使用IFrame而不是脚本DOM元素?

时间:2013-10-01 08:00:15

标签: javascript iframe asynchronous nonblocking google-tag-manager

Google代码管理器使用隐藏IFrame解决方案的原因是什么?我指的是这个页面https://developers.google.com/tag-manager/quickstart。为什么它不使用脚本DOM元素方法,如此处描述的http://www.stevesouders.com/blog/2008/12/27/coupling-async-scripts/?谢谢。

1 个答案:

答案 0 :(得分:2)

当我第一次看到它时,我也想到了同样的事情。 IFrame实际上包含在<noscript>中,这意味着只有在禁用JavaScript时才会使用它。

为了说明的目的,我添加了间距:

<noscript>
    <iframe src="https://www.googletagmanager.com/ns.html?id=GTM-ABCD"
height="0" width="0" style="display:none;visibility:hidden"></iframe>
</noscript>
<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-ABCD');
</script>