1

この行が両方のスクリプトに表示されるため、Facebook のトラッキング コードを Analytics と同じページに配置することで、コードに競合があるかどうかを理解しようとしています。

document.getElementsByTagName('script')[0]

以下に関連するコードを示します。

<head>
  <link rel="stylesheet" type="text/css" href="stylesheet.css">

  <!---- START OF FACEBOOK TRACKING SCRIPT  -->
  <script type="text/javascript">
    var fb_param = {};
    fb_param.pixel_id = '6008770441xxx';
    fb_param.value = '123.00';
    (function(){
      var fpw = document.createElement('script');
      fpw.async = true;
      fpw.src = '//connect.facebook.net/en_US/fp.js';

この行はこちら:

      var ref = document.getElementsByTagName('script')[0];
      ref.parentNode.insertBefore(fpw, ref);
    })();
   </script>
   <noscript><img height="1" width="1" alt="" style="display:none" src="https://www.facebook.com/offsite_event.php?id=600877044xxx&amp;value=0" /></noscript>

  <!---- START OF ANALYTICS TRACKING SCRIPT  -->
   <script type="text/javascript">
     var _gaq = _gaq || [];
     _gaq.push(['_setAccount', 'UA-2725xxx-3']);
     _gaq.push(['_trackPageview']);
     _gaq.push(['_addTrans',
       '456',       // order ID - required
       'xxx', // affiliation or store name
       '123', // total - required
       '',    // tax
       '10',  // shipping
       ',     // city
       '',    // state or province
       'Australia' // country
     ]);      
  _gaq.push(['_trackTrans']); //submits transaction to the Analytics servers

  (function() {
    var ga = document.createElement('script'); 
    ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';

この行は再び:

    var s = document.getElementsByTagName('script')[0]; 
    s.parentNode.insertBefore(ga, s);
  })();

  </script>
</head>
4

1 に答える 1

2

その行の次の行を参照してください。

var s = document.getElementsByTagName('script')[0]; 
s.parentNode.insertBefore(ga, s);

これで要素が First CHild Place に挿入され、最初の子が 2 番目になります。

したがって、これは実行時にスクリプトを挿入するだけであり、まったく競合しません

:)

于 2013-03-07T05:45:08.283 に答える