Чтобы лучше понять, как работает трафик 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 убил мутации.
Любые другие хитрые идеи?