Su alcune descrizioni dei miei tag voglio aggiungere un link come questo:
<a href="https://store.sgiant.me" target="_blank">Clicca qui</a> per visitare lo store ufficiale di Sir Giant.
Quando lo salvo per la prima volta, funziona e si apre in una nuova finestra.
Quando aggiorno la pagina, non funziona più e se controllo il codice, diventa:
<a href="https://store.sgiant.me">Clicca qui</a> per visitare lo store ufficiale di Sir Giant.
Ho già impostato l’opzione per aprire i link esterni in una nuova scheda su Sì, ma questo sembra non influire su questo particolare caso in cui sto aggiungendo codice HTML.
ChatGPT ha suggerito la creazione di un componente con la scheda JS contenente:
import { apiInitializer } from "discourse/lib/api";
export default apiInitializer((api) => {
function processTagLinks() {
document.querySelectorAll('.tag-title-contents a[href^="http"]').forEach(link => {
if (!link.href.includes(window.location.hostname) && !link.hasAttribute('data-processed')) {
link.setAttribute('target', '_blank');
link.setAttribute('rel', 'noopener noreferrer');
link.setAttribute('data-processed', 'true');
}
});
}
// Processa immediatamente
processTagLinks();
// Osserva le modifiche al DOM
const observer = new MutationObserver(() => {
processTagLinks();
});
observer.observe(document.body, {
childList: true,
subtree: true
});
// Esegui anche al cambio pagina
api.onPageChange(() => {
setTimeout(processTagLinks, 100);
});
});
Ma non sono uno sviluppatore e quindi non so se sia una buona soluzione o meno.
