Измените идентификатор партнера Amazon для ссылки на странице AMP - PullRequest
2 голосов
/ 16 апреля 2020

Чтобы лучше понять, как работает трафик Flipboard c по сравнению с обычным веб-трафиком c, мы хотели бы использовать уникальный идентификатор партнера Amazon для Flipboard, когда они загружают нашу страницу AMP в свое мобильное приложение.

AMP предлагает amp-script для пользовательских JavaScript, но имеет существенные ограничения. Примечательно, что он не позволяет вам изменять DOM без соответствующего пользовательского ввода. Лучшая идея, к которой я пришел:

<script id="entry-content" type="text/plain" target="amp-script">
    document.querySelectorAll('a').forEach(function(el) {
        el.addEventListener('click', function() {
            var link = el.getAttribute('href');
            if (-1 === link.indexOf('amazon.com')) {
                return;
            }
            el.setAttribute('href', link.replace(/tag=[A-Za-z0-9\-]+/, 'tag=newid' ));
        });
    });
</script>

AMP разрешает мутацию, но браузер использует исходное значение link для новой вкладки, так что это не работает.

Я также пытался:

  • Вызов window.open() в обработчике событий click. open() не доступен, однако.
  • Просто измените ссылки на document.addEventListener('scroll'). AMP убил мутации.

Любые другие хитрые идеи?

...