Ciao.
Ti mostrerò con le immagini.
Stavo ricevendo questo errore prima dell’ultimo aggiornamento.
Dopo aver installato l’aggiornamento, continuo a ricevere questo errore.
(Aggiornato - Current)
E ho rimosso tutto il codice dal sito e ho riprovato, ricevo ancora l’errore.
Traduci
Errore
Si è verificato un errore.
Succede anche in modalità provvisoria? Potresti anche controllare la console del browser per eventuali errori quando ci fai clic, oltre a controllare in /logs per vedere se ci sono maggiori dettagli.
1 Mi Piace
La modalità provvisoria è attiva e non viene visualizzato alcun errore nella pagina dei log. Forse non capisco.
Ultimi log.
Ho provato a disattivare la modalità provvisoria. Ricevo ancora lo stesso errore.
A proposito, quando ci clicco per la seconda volta, l’errore scompare e appare la home page.
Vedo alcuni errori quando i componenti del tema vengono caricati e i plugin vengono scaricati.
Potresti dare un’occhiata alle tue recenti personalizzazioni.
1 Mi Piace
Arkshine:
Vedo alcuni errori quando i plugin vengono caricati (TC da solo sembra a posto), ma non riesco a capirne l’origine.
Quali plugin hai installato?
Grazie per il tuo interesse.
Ultimo plugin: GIF
Tutti i plugin
Hai personalizzazioni JS al di fuori dei componenti remoti?
Proverei a disabilitare tutti i componenti e ad abilitarli uno per uno finché non si verifica l’errore.
<script>
function moveTagsToTitle() {
const mainLinks = document.querySelectorAll('.main-link');
mainLinks.forEach(mainLink => {
const discourseTags = mainLink.querySelector('.discourse-tags');
const titleElement = mainLink.querySelector('.title');
if (discourseTags && titleElement) {
const tags = discourseTags.querySelectorAll('.discourse-tag');
tags.forEach(tag => {
const tagSpan = document.createElement('span');
tagSpan.className = 'discourse-tag box';
tagSpan.textContent = tag.textContent;
tagSpan.style.fontSize = 'var(--font-down-2)';
tagSpan.style.borderRadius = '10px';
tagSpan.style.border = '1px solid #444460';
tagSpan.style.backgroundColor = '#1f1f33';
tagSpan.style.margin = '2px';
tagSpan.style.display = 'inline-block';
tagSpan.style.overflow = 'hidden';
tagSpan.style.whiteSpace = 'nowrap';
tagSpan.style.textOverflow = 'ellipsis';
tagSpan.style.verticalAlign = 'middle';
tagSpan.style.marginRight = '5px';
tagSpan.style.marginLeft = '-6px';
titleElement.insertBefore(tagSpan, titleElement.firstChild);
});
if (discourseTags.parentNode) {
discourseTags.parentNode.removeChild(discourseTags);
}
}
});
const topicHeaderExtras = document.querySelectorAll('.topic-header-extra');
topicHeaderExtras.forEach(topicHeaderExtra => {
const discourseTags = topicHeaderExtra.querySelector('.discourse-tags');
const tags = discourseTags.querySelectorAll('.discourse-tag');
tags.forEach(tag => {
tag.className = 'discourse-tag box';
tag.style.borderRadius = '10px';
tag.style.border = '1px solid #444460';
tag.style.backgroundColor = '#1f1f33';
tag.style.margin = '1px';
tag.style.padding = '2px 8px';
tag.style.display = 'inline-block';
tag.style.overflow = 'hidden';
tag.style.whiteSpace = 'nowrap';
tag.style.textOverflow = 'ellipsis';
tag.style.verticalAlign = 'middle';
tag.style.marginRight = '5px';
tag.style.marginBottom = '5px';
});
});
}
window.addEventListener('load', moveTagsToTitle);
const observer = new MutationObserver(moveTagsToTitle);
const targetNode = document.body;
const observerOptions = {
childList: true,
subtree: true
};
observer.observe(targetNode, observerOptions);
</script>
Questi codici causano questo errore.
Non so come risolverlo.
Ho bisogno di questi codici
Stai spostando elementi che contengono componenti Emberjs (qui è l’elenco dei tag), il che penso possa interrompere il ciclo di vita del componente.
La tua migliore opzione qui è usare l’API.
Nel tuo caso, o:
Utilizzando gli outlet dei plugin come ho mostrato nel tuo ultimo argomento . Tuttavia, poiché non esiste per gli argomenti più recenti nella pagina della categoria, dovrai richiederlo.
Sovrascrivi il template . Questa non è una buona soluzione per motivi di compatibilità, ma può essere un’alternativa immediata.
1 Mi Piace
Ho trovato questi codici.
Questo non è quello che volevo, ma per ora andrà bene.
var pElement = document.getElementById('site-logo').parentNode;
//var pElement = document.createElement('a');
//pElement.innerHTML = aElement.innerHTML;
//aElement.replaceWith(pElement);
pElement.href = '#';
pElement.style.cursor = 'pointer';
pElement.onclick = function() {
window.location.href = '/';
};
//document.getElementById('site-logo').parentNode.href = '/';
Se qualcuno può aiutare, sto aspettando. Grazie
Consiglio vivamente di non intraprendere quella strada. È come applicare un cerotto a un effetto collaterale invece di risolvere la causa principale del problema. Creerai altri problemi con essa (come il tuo ultimo topic a causa del codice sopra)
Puoi rendere il tuo JS un po’ più “discourse friendly” (il modo migliore è comunque usare un plugin outlet quando puoi).
Ecco un esempio. Utilizza l’API al cambio pagina, esegue codice su un percorso specifico e copia l’HTML prima del link (in modo da poter fare clic sul tag):
JS
<script type="text/discourse-plugin" version="0.8">
const { next } = require("@ember/runloop");
function moveTags() {
const mainLinks = document.querySelectorAll(".main-link:not(.tags-moved)");
mainLinks.forEach((mainLink) => {
const discourseTags = mainLink.querySelector(".discourse-tags");
const titleElement = mainLink.querySelector("a[data-topic-id]");
if (discourseTags && titleElement) {
titleElement.insertAdjacentHTML("beforebegin", discourseTags.outerHTML);
mainLink.classList.add('tags-moved');
}
});
}
api.registerModelTransformer("topic", async (topics) => {
next(() => {
moveTags();
})
});
api.onPageChange((url) => {
if (url.startsWith("/categories")) {
moveTags();
}
});
</script>
CSS
.top-row,
.link-top-line {
.discourse-tag {
font-size: var(--font-down-2) !important;
padding: 2px 8px;
margin: 2px 5px 2px -6px;
border-radius: 10px;
border: 1px solid #444460;
background-color: #1f1f33;
}
.discourse-tag::after {
content: '' !important;
margin-left: 0 !important;
}
}
.bottom-row,
.link-bottom-line {
.discourse-tags {
display: none;
}
}
2 Mi Piace
Ciao @Arkshine
Cambiare il link del logo non ha aiutato, ho cancellato questi codici.
Ma non c’è altro modo. Ho bisogno di posizionare i tag in questo modo.
https://pvpfarm.com
Se pago qualcuno, può scrivere codici decenti che funzionano?
E dove trovi questi codici? (JS) Da GitHub - discourse/discourse: A platform for community discussion. Free, open, simple. ?
Puoi creare un argomento in Marketplace se hai bisogno/vuoi assistenza a pagamento.
1 Mi Piace
Ho fornito il codice per questo in #11 .
Ciao di nuovo @Arkshine
Ho aggiunto i codici che mi hai dato dopo averli cancellati, ma non funzionano. Sto commettendo un errore?
Funziona per me:
Assicurati di mantenere \u003cscript type=\"text/discourse-plugin\" version=\"0.8\"\u003e. , altrimenti non funzionerà.
Sì, funziona!
C’è solo un piccolo errore.
Quando faccio clic sul logo, il numero di tag aumenta.
Ho aggiornato il mio codice sopra.
2 Mi Piace
Non so come ringraziarti. Grazie mille!
@Arkshine Mi dispiace per aver ripreso nuovamente l’argomento.
Grazie ancora. Ho trovato un errore nei codici che mi hai dato.
Puoi aiutarmi per favore?
Ho provato a correggere i codici ma non ci sono riuscito.
Nella sezione Ultimi, appare solo il tag nell’argomento taggato aperto più di recente.
E quando entri in una categoria, i tag non appaiono.
@ogulcan1787 Ho aggiornato il codice sopra.
1 Mi Piace