Как вызывать коды отслеживания javascript, только если утверждение истинно?

#javascript #google-ads-api #tracker

#javascript #google-ads-api #отслеживание

Вопрос:

Мне нужно вставить 2 кода отслеживания на веб-сайт, но я также должен убедиться, что они отслеживают активность, ТОЛЬКО если утверждение jQuery верно. Один из них — Google Adwords, другой — код Gemius:

Вот код отслеживания Gemius:

 <script type="text/javascript">
    (_gdeaq = window._gdeaq || []).push(['pageView', 'gdehu', 'some_code', 'some_code_2, 'some_code_3']);
</script>
<script type="text/javascript" src="//gdehu.hit.gemius.pl/something_url"> </script>
  

Adwords:

 <script type="text/javascript">
/* <![CDATA[ */
var google_conversion_id = 12345678;
var google_conversion_language = "en";
var google_conversion_format = "3";
var google_conversion_color = "ffffff";
var google_conversion_label = "some_data_here";
var google_remarketing_only = false;
/* ]]> */
</script>
<script type="text/javascript" src="//www.googleadservices.com/pagead/conversion.js">
</script>

<noscript>
<div style="display:inline;">
<img height="1" width="1" style="border-style:none;" alt="" src="//www.googleadservices.com/pagead/conversion/12345678/?label=some_data_hereamp;amp;guid=ONamp;amp;script=0"/>
</div>
</noscript>
  

Я должен активировать эти два трекера, ТОЛЬКО если утверждение истинно:

 <script type="text/javascript">

    jQuery(function(){
        jQuery("#formsubmit").click(function(event){
            //some code here

            jQuery("input[type='text'],select,input[type='checkbox']","#forms").each(function(){

            //some code here

            });

            if( jQuery("input[name='email']","#forms").val() != jQuery("input[name='cEmail']","#forms").val() ){
                //some code here
            }

            if(!error_flag){
                //i have to call the trackers only if this statement is true 

                //so i want to insert them here somehow
            }else{
                alert(error_message);
            }
        });
    }); 
</script>
  

Не могли бы вы предложить мне какие-нибудь решения?

Комментарии:

1. динамически загружайте два внешних скрипта, если условие истинно — итак, строка 4 в первом фрагменте и строки 11,12 во втором

Ответ №1:

Попробуйте это:

 if(!error_flag){
   //i have to call the trackers only if this statement is true 
   // i want to insert them here somehow
  (function() {
  (_gdeaq = window._gdeaq || []).push(['pageView', 'gdehu', 'some_code', 'some_code_2, 'some_code_3']);
  var sc1 = document.createElement('script'); sc1.type = 'text/javascript'; sc1.id = "sc1";
  sc1.src = '//gdehu.hit.gemius.pl/something_url';
  var fs = document.getElementsByTagName('script')[0];   
  fs.parentNode.insertBefore(sc1, fs);
  })();


  var google_conversion_id = 12345678;
  var google_conversion_language = "en";
  var google_conversion_format = "3";
  var google_conversion_color = "ffffff";
  var google_conversion_label = "some_data_here";
  var google_remarketing_only = false;
  (function() {
  var sc2 = document.createElement('script'); sc2.type = 'text/javascript'; sc2.id = "sc2";
  sc2.src = '//www.googleadservices.com/pagead/conversion.js';
  var fs = document.getElementsByTagName('script')[0]; 
  fs.parentNode.insertBefore(sc2, fs);
  })();

}
  

Комментарии:

1. Хорошо, пожалуйста, отметьте это как принятый ответ , нажав на кнопку «Отметить галочкой» (предоставляется в левой части этого ответа).