O ID é especificado na página do componente e o console registra o ID correto. No entanto, ele não parece atualizar nenhum URL.
Adicionei este epn-smart-tools.js como uma exceção à política de segurança de conteúdo. No console do navegador, recebo este aviso:
Parece que este “from-url.js.map” referenciado no epn-smart-tools.js é o problema. Escrevi um arquivo HTML simples na minha área de trabalho e o executei localmente e não parece haver um problema - o que me leva a acreditar que é mais provável um problema no lado do discourse do que no meu navegador.
O que esses mapas de origem fazem e como o discourse interage com eles estão fora dos limites do meu conhecimento. Algum conselho aqui? Estou esquecendo de algo?
Mapas de origem são arquivos opcionais que ajudam na depuração de ativos minificados. Como você não controla este ativo e não tem controle sobre sua origem, você deve ignorar este aviso.
Obrigado pelas informações @Falco e feliz aniversário.
Descobri que o problema estava em onde adicionei aquela linha <script src="....
Isso funcionou para mim:
<script type="text/discourse-plugin" version="0.8">
console.log(settings.epn_id);
window._epn = {campaign: settings.epn_id, smartPopover:false};
var script = document.createElement('script');
script.src = 'https://epnt.ebay.com/static/epn-smart-tools.js';
var head = document.getElementsByTagName("head")[0];
head.appendChild(script);
</script>
O próximo problema que encontrei é que os elementos carregados dinamicamente não têm o script aplicado a eles. Por exemplo, se eu atualizar a página em um tópico, as postagens que carregam terão o link de afiliado, mas rolar para revelar mais postagens - essas não terão.
Existe uma maneira de executar o script toda vez que um novo elemento é carregado?
Idealmente, você faria isso no lado do servidor, assim que um novo post fosse salvo. Temos um plugin que faz exatamente isso para a Amazon, então você deve ser capaz de adaptá-lo para o eBay: GitHub - discourse/discourse-affiliate