javascript - 我们是否需要为所有不同的第三方脚本添加 noscript 标签

标签 javascript html noscript

我在网页上安装了许多第三方脚本。 其中很少有谷歌分析、Facebook Pixel、Bing 跟踪、谷歌广告跟踪等等。 它们都提供了脚本和无脚本代码块。 例如: bing 跟踪代码

<script>
        (function(w,d,t,r,u){
            var f,n,i;w[u]=w[u]||[],f=function(){
                var o={ti:"5709384"};o.q=w[u],w[u]=new UET(o),w[u].push("pageLoad")},
                n=d.createElement(t),n.src=r,n.async=1,n.onload=n.onreadystatechange=function(){
                    var s=this.readyState;s&&s!=="loaded"&&s!=="complete"||(f(),n.onload=n.onreadystatechange=null)
                },i=d.getElementsByTagName(t)[0],i.parentNode.insertBefore(n,i)})(window,document,"script","//bat.bing.com/bat.js","uetq");
    </script>
    <noscript><img src="//bat.bing.com/action/0?ti=5709384&Ver=2" height="0" width="0" style="display:none; visibility: hidden;" /></noscript>

和 Facebook 像素代码

  <script>
    !function(f,b,e,v,n,t,s)
    {if(f.fbq)return;n=f.fbq=function(){n.callMethod?
    n.callMethod.apply(n,arguments):n.queue.push(arguments)};
    if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
    n.queue=[];t=b.createElement(e);t.async=!0;
    t.src=v;s=b.getElementsByTagName(e)[0];
    s.parentNode.insertBefore(t,s)}(window,document,'script',
    'https://connect.facebook.net/en_US/fbevents.js');
    fbq('init', '756756745676'); 
    fbq('track', 'PageView');
    </script>
    <noscript>
    <img height="1" width="1" 
    src="https://www.facebook.com/tr?id=756756745676&ev=PageView
    &noscript=1"/>
    </noscript>

现在我关心的是我们是否需要添加所有 noscript 标签。如果我删除所有 noscript 标签并放置一个带有打开 javascript 消息的 noscript 标签,这样会好吗?或者可能是我对 noscript 标签有错误的想法。请指教。

最佳答案

您不应该删除 <noscript>标签(如果明确提供给您),尤其是 Facebook Pixel、Google Tag Manger 等。

对于普通用户(默认情况下打开脚本),正常 <script>标签将运行,您的第三方跟踪工具将按预期运行,从而正确地促进您的分析。

但是,对于某些关闭脚本的用户来说,正常 <script>标签将不会运行,因此您的分析将不再准确。这就是<noscript>发挥作用。

如果您注意到了,<noscript>这些第三方分析提供的数据有 <iframe><img>src属性以及您的“app_id”。对于 Facebook Pixel 和 GTM,您还会在属性中看到类似“PageView”或类似内容。

每当 <iframe><img>src加载后,页面浏览次数将归因于您的跟踪 ID。

因此,如果脚本关闭,<noscript>现在将用于跟踪您的网络性能,使您的分析更加准确(即使某些高级跟踪功能无法实现)。

阅读详情herehere .

关于javascript - 我们是否需要为所有不同的第三方脚本添加 noscript 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54297175/

相关文章:

javascript - 使用js从输入标签获取多个值

javascript - 是否有与 <noscript> 相反的 HTML?

html - 即使启用了 JavaScript,内容是否在 <noscript> 标记中加载/设置样式/解析?

javascript - 如何根据数据库用户 ID(不是 uid)设置 firebase 规则

javascript - 在提交调试之前显示表单值

html - 有没有办法在 Chrome 中使单选按钮的背景透明?

jquery - 您可以在不访问 iframe 的 css 的情况下设置 iframe 滚动条的样式吗?

javascript - 禁用 JavaScript 时添加元素样式

javascript - 跨函数 Javascript 链接 Promise

javascript - 为什么我不能将其放入 Promise.catch 处理程序中?