Получить значение внутри скрипта в JavaScript - PullRequest
0 голосов
/ 29 июня 2018

У меня есть этот скрипт, и так как я новичок в JavaScript, я хочу взять trackid из скрипта Google Analytics "UA-101203313-3" Чтобы быть более точным, я хочу это: const trackid = 'UA-101203313-3'. Как получить это? Можете ли вы показать мне, как?

<script async src="https://www.googletagmanager.com/gtag/js?id=UA-101203313-3"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'UA-101203313-3');
</script>

1 Ответ

0 голосов
/ 29 июня 2018

Итак, звучит так, будто вы хотите поцарапать какой-нибудь текст. Вы можете сделать это, используя это регулярное выражение для сопоставления в скрипте src attribute

var trackid = text.match(/\?id=(UA-\d+-\d+)/)[1]

Этот способ работает, только если данные представляют собой строку:

const text = `<script async src="https://www.googletagmanager.com/gtag/js?id=UA-101203313-3"><\/script>
<script>
  window.dataLayer = window.dataLayer || [];

  function gtag() {
    dataLayer.push(arguments);
  }
  gtag('js', new Date());

  gtag('config', 'UA-101203313-3');
<\/script>`

var trackid = text.match(/\?id=(UA-\d+-\d+)/)[1]
console.log(trackid)

Если данные уже встроены в страницу, вы можете выбрать тег сценария и получить его аналогичным образом:

var trackid = document.getElementById('google-manager').src.match(/\?id=(UA-\d+-\d+)/)[1]
console.log(trackid)
<script id="google-manager" async src="https://www.googletagmanager.com/gtag/js?id=UA-101203313-3"></script>
<script>
  window.dataLayer = window.dataLayer || [];

  function gtag() {
    dataLayer.push(arguments);
  }
  gtag('js', new Date());

  gtag('config', 'UA-101203313-3');
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...