Как прикрутить РСЯ к reactjs?

Яндекс выдает такой код для своей рекламы. Как его правильно прикрутить к reactjs?
<!-- Yandex.RTB XXXXX -->
<div id="yandex_rtb_XXXXXX"></div>
<script type="text/javascript">
    (function(w, d, n, s, t) {
        w[n] = w[n] || [];
        w[n].push(function() {
            Ya.Context.AdvManager.render({
                blockId: "XXXXXX",
                renderTo: "yandex_rtb_XXXXXXX",
                horizontalAlign: false,
                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>
  • Вопрос задан
  • 1657 просмотров
Пригласить эксперта
Ответы на вопрос 1
fnnzzz
@fnnzzz
front-end dev
просто вставить в html, ниже того дива, в который рендерится реакт, реакт ведь "диффает" только тот entry-node, который вы указали.

если хотите добавить в самом реакте, из-под компонента, то можно так

appendYaMetrix() {
	const yaDiv = document.createElement('div')
	yaDiv.setAttribute('id', 'yandex_rtb_XXXXXX')
	document.body.appendChild(yaDiv)

	const yaScript = document.createElement('script')
	yaScript.setAttribute('type', 'text/javascript')
	yaScript.innerHTML = `(function(w, d, n, s, t) {
        w[n] = w[n] || [];
        w[n].push(function() {
            Ya.Context.AdvManager.render({
                blockId: "XXXXXX",
                renderTo: "yandex_rtb_XXXXXXX",
                horizontalAlign: false,
                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");`

    document.head.appendChild(yaScript)
}

componentDidMount() {
	this.appendYaMetrix()
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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