Interne Links im selben Browser-Tab öffnen

Viele von uns betreiben Discourse in einer Subdomain und haben zusätzlich eine Website im Root-Bereich, z. B. meta.discourse.org und discourse.org. Wenn jedoch die globale Einstellung „Standardmäßig externe Links in einem neuen Tab öffnen

1 „Gefällt mir“

Das klingt nach einem sehr spezifischen Bedarf, daher ist es am besten, dies über ein Theme oder Plugin zu lösen.

2 „Gefällt mir“

Ich würde das ehrlich gesagt bei jeder Discourse-Instanz, die ich betreibe, so machen. Ich kann mir nicht vorstellen, dass jemand dagegen wäre – wenn eine Site dieselbe interne/übergeordnete Domain hat, möchtest du den Link wahrscheinlich im selben Fenster öffnen. Ich frage mich, ob es sich lohnt, eine Umfrage zu solchen Dingen zu starten, um ein Gefühl dafür zu bekommen, was Discourse-Nutzer bevorzugen? Ich denke, du wirst von den Ergebnissen überrascht sein :blush:

Was ist der beste Weg, das zu machen, Rafael?

Ich habe versucht, Folgendes zu verwenden:

<script type="text/discourse-plugin" version="0.8.42">
	api.decorateCookedElement(
	  element => {
	    const tags = element.querySelectorAll('.hashtag');

	    tags.forEach(function(tag) {
				if (tag.hasAttribute('href')) {
					if (tag.href.includes("site.com/tag/")) {
						tag.href = tag.href.replace("site.com/tag/", "newsite.com/")
						tag.setAttribute("target", "_self");
					}
				}
	    });
    },
	  {
	    onlyStream: true
	  }
	);
</script>

Während:

tag.setAttribute("target", "_self");

das Attribut setzt, hat es keine Auswirkung, und Links öffnen sich wie gewohnt in einem neuen Tab.

Ich vermute, ich muss etwas anderes als api.decorateCookedElement verwenden?