Демо интеграции NewsGame: одностраничное приложение (SPA). Это макет, а не сайт издания.Как встроено ↓Все игры
Материалы открываются без перезагрузки страницы

Способ: SPA без перезагрузки страницы

Loader подключается один раз на всё приложение. Приложение само рисует статьи и вставляет в каждую контейнер .news-game. Loader замечает новые контейнеры через MutationObserver. Если контейнер удалён вместе со статьёй, открытая игра закрывается.

<!-- один раз в шаблоне приложения -->
<script async src="https://goshva.github.io/newsgame/widget/v1.js" data-site="demo-cis-spa"></script>

<!-- в компоненте статьи -->
<div class="news-game" data-placement="article-end"
     data-article-id="{{ article.gameId }}" data-lang="ru"></div>

Третий материал показывает, что будет, если игры для статьи нет в каталоге: блок скрывается и не занимает места.

Ссылки

События виджета