Прочитайте свойства скрипта, который возвращается при загрузке моей страницы - PullRequest
0 голосов
/ 29 июня 2018

Я запускаю приложение реагирования, и когда я рендеринг главной страницы, кроме как из комплекта и некоторых других файлов, я получаю этот сценарий JavaScript под названием https://grcontent.experience-booking.com/file/localhost_script.js:

<!-- Global site tag (gtag.js) - Google Analytics -->
<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>

В моем основном js-файле я хочу как-то получить доступ к URL внутри этого скрипта, но я не знаю, как это сделать? Причина, по которой я хочу сделать это, состоит в том, чтобы выполнить другой сценарий с «UA-101203313-3» в качестве свойства. Большое спасибо

Ответы [ 2 ]

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

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

var scripts = Array.prototype.slice.call(document.getElementsByTagName('script'));

for (var i=0; i<scripts.length; i++) {
   var script = scripts[i];
   if (script.src && script.src.startsWith('https://www.googletagmanager.com') ){
      return getIdFromSrc(script.src);
   }
}
0 голосов
/ 29 июня 2018

Вы должны иметь возможность использовать querySelector и сделать что-то подобное, чтобы получить URL

Обратите внимание, я изменил скрипт src url, чтобы он на самом деле назывался

var tag = document.querySelector('script[src^="https://www.googletagmanager"]');
var url = tag.src;
console.log(url)

// and one could also very simple get the id, like this
var params = (new URL(tag.src)).searchParams;
console.log(params.get("id"))
<script async src="https://www.googletagmanager_oops.com/gtag/js?id=UA-101203313-3"></script>
...