Mir ist bewusst, dass ich diese beiden Zeilen aus Sicherheitsgründen nicht einfach hinzufügen kann. Hier gibt es eine kleine Diskussion: EPN Smart Links
Ich habe eine sehr einfache Theme-Komponente erstellt und den Code in die Datei common/head_tag.html eingefügt:
Die ID ist auf der Komponentenseite angegeben und die Konsole protokolliert die richtige ID. Es scheint jedoch keine URLs zu aktualisieren.
Ich habe diese epn-smart-tools.js als Ausnahme für die Content Security Policy hinzugefügt. In der Browserkonsole erhalte ich jedoch diese Warnung:
Es sieht so aus, als ob diese “from-url.js.map”, auf die in epn-smart-tools.js verwiesen wird, das Problem ist. Ich habe eine einfache HTML-Datei auf meinem Desktop erstellt und sie lokal ausgeführt, und es scheint kein Problem zu geben - was mich zu der Annahme veranlasst, dass es sich eher um ein Problem auf der Discourse-Seite als in meinem Browser handelt.
Was diese Source Maps tun und wie Discourse mit ihnen interagiert, liegt außerhalb meines Wissens. Irgendwelche Ratschläge? Übersehe ich etwas?
Source Maps sind optionale Dateien, die beim Debuggen von minimierten Assets helfen. Da Sie dieses Asset nicht kontrollieren und keine Kontrolle über dessen Quelle haben, sollten Sie diese Warnung ignorieren.
Danke für die Info @Falco und alles Gute zum Geburtstag.
Ich habe herausgefunden, dass das Problem dort lag, wo ich diese `<script src="… Zeile eingefügt habe.
Das hat für mich funktioniert:
<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>
Das nächste Problem, auf das ich gestoßen bin, ist, dass Elemente, die dynamisch geladen werden, das Skript nicht angewendet bekommen. Wenn ich zum Beispiel eine Seite zu einem Thema aktualisiere, haben die Beiträge, die geladen werden, den Affiliate-Link, aber wenn ich scrolle, um weitere Beiträge anzuzeigen – diese werden nicht angezeigt.
Gibt es eine Möglichkeit, das Skript jedes Mal auszuführen, wenn ein neues Element geladen wird?
Idealerweise würden Sie das serverseitig tun, sobald ein neuer Beitrag gespeichert wird. Wir haben ein Plugin, das genau das für Amazon tut, sodass Sie es für eBay anpassen können: GitHub - discourse/discourse-affiliate