@eliasj
PHP/Laravel разработчик

Как подключить блок РСЯ в проект на NuxtJs?

Здравствуйте, видел похожие вопросы, но все равно требуется помощь в решении.
Необходимо подключить блок с рекламой (РСЯ) в проекте на NuxtJs.
Для этого создал отдельный компонент,
на данный момент его код выглядит так
<template>
  <!-- Yandex.RTB R-A-643225-1 -->
  <div id="yandex_rtb_R-A-643225-1"></div>

</template>

<script>
  export default {
    mounted() {
      (function(w, d, n, s, t) {
        w[n] = w[n] || [];
        w[n].push(function() {
          Ya.Context.AdvManager.render({
            blockId: "R-A-643225-1",
            renderTo: "yandex_rtb_R-A-643225-1",
            async: true
          });
        });
        t = d.getElementsByTagName("script")[0];
        s = d.createElement("script");
        s.type = "text/javascript";
        s.src = "//an.yandex.ru/system/context.js";
        s.async = true;
        t.parentNode.insertBefore(s, t);
      })(this, this.document, "yandexContextAsyncCallbacks");
    }
  }
</script>


Однако я получаю ошибку
NEvTX4PYg1k.jpg?size=1600x860&quality=96&proxy=1&sign=13879eef81cc1ab3a17f19e082e81a05&type=album
Никак не могу придумать как правильно подключить скрипт яндекса
  • Вопрос задан
  • 386 просмотров
Решения вопроса 1
@eliasj Автор вопроса
PHP/Laravel разработчик
Помог комент: ReaverJS @ReaverJS
Ошибка скорей всего в разных контекстах "this".
Думаю можно изменить this на window, а this.document на document.

Итоговый код:
<template>
  <!-- Yandex.RTB R-A-643225-1 -->
  <div id="yandex_rtb_R-A-643225-1"></div>

</template>

<script>
  export default {
    mounted() {
      (function(w, d, n, s, t) {
        w[n] = w[n] || [];
        w[n].push(function() {
          Ya.Context.AdvManager.render({
            blockId: "R-A-643225-1",
            renderTo: "yandex_rtb_R-A-643225-1",
            async: true
          });
        });
        t = d.getElementsByTagName("script")[0];
        s = d.createElement("script");
        s.type = "text/javascript";
        s.src = "//an.yandex.ru/system/context.js";
        s.async = true;
        t.parentNode.insertBefore(s, t);
      })(window, document, "yandexContextAsyncCallbacks");
    }
  }
</script>
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы