2015-04-22 3 views
0

Я пытаюсь передать переменную javascript на слой данных.Как передать переменную JS в DataLayer?

$(document).ready(function() { 
      var dataTag = $('#data-tag-link').attr('data-tag'); 
      dataTag = "'" + dataTag + "'"; 
      console.log(dataTag); 

      dataLayer = []; 
      dataLayer.push({ 
       'data-tag': dataTag, 
       'data-author': '$Author.xml' 
      }); 
     }); 

dataLayer посылает имя переменной, однако, а не фактическое значение переменной, например, он посылает «dataTag», а не «Мобильный», который она должна быть. Какие-нибудь идеи о том, что этот вопрос может быть?

+0

Не могли бы вы разместить свой код MarkUp? –

+0

Почему вы добавляете котировки в dataTag? Я не уверен, что они вредны, но они, безусловно, не нужны (буквальные строки нужно указывать перед добавлением их в dataLayer, но не переменными). –

+0

Я закончил тем, что передал это с PHP, как author.xml. $ Tag.XML не пройдет по какой-то причине, которая до сих пор неизвестна, поскольку она была успешно вызвана в HTML. Однако я передал это как переменную PHP, установленную в CMS. –

ответ

1

Вам не нужно указывать dataTag так, как вы это делали. Этого должно быть достаточно:

$(document).ready(function() { 
    var dataTag = $('#data-tag-link').attr('data-tag'); 

    dataLayer = []; 
    dataLayer.push({ 
      'dataTag': dataTag, 
      'dataAuthor': '$Author.xml' 
    }); 
}); 

Я также рекомендую использовать camelCase для свойств объекта. Таким образом, вы сможете позже использовать TagManager в качестве идентификаторов в Makro: dataLayer.dataTag

Смежные вопросы