Внедрение скрипта в Google Tag Manager - PullRequest
6 голосов
/ 07 апреля 2020

Недавно мне было поручено очистить наши теги GTM. Я заметил, что многие теги включают удаленные сценарии, внедряя их в DOM, используя JS, например:

var head = document.getElementsByTagName('head')[0]
var js = document.createElement('script');
js.src = 'https://cdn.somewhere.com/script.js';
head.appendChild(js);

Есть ли конкретная c причина, почему люди делают это таким образом, а не просто с помощью этого?

<script type="text/javascript" src="https://cdn.somewhere.com/script.js" async></script>

В чем преимущества первого способа? Есть ли лучший способ обработки внешних скриптов?

Ответы [ 3 ]

3 голосов
/ 08 апреля 2020

Я нашел только одну причину сделать это, но не уверен, что это все еще актуально в наши дни. Как сказано в этой статье GTM удаляет некоторые атрибуты сценария, и, если они требуются, лучше добавить сценарий программно.

1 голос
/ 08 апреля 2020

С GTM нет особого смысла. Идея добавления элементов сценария к заголовку состоит в том, чтобы повлиять на порядок загрузки, но поскольку сначала вам нужно загрузить GTM, который затем вводит код создания элемента / добавления в произвольную позицию перед его запуском, с GTM этот разумный подход просто создает ненужный дополнительный шаг.

В любом случае это спорный вопрос, поскольку в наши дни вы не будете использовать ни теги create / append, ни теги script в теге Custom HTML. Путь к go теперь заключается в создании пользовательского шаблона и использовании injectScript API.

0 голосов
/ 08 апреля 2020

Со вторым кодом вы пишете его в документе в неуказанной c позиции (или определенной GTM), вместо этого с appendChild добавляет элемент к указанному элементу (в данном случае head).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...