Fehler beim Klicken auf das Homepage-Logo

Hallo.
Ich werde es Ihnen mit Bildern zeigen.
Vor dem letzten Update ist dieser Fehler aufgetreten.
Nach der Installation des Updates tritt dieser Fehler weiterhin auf.

(Aktuell)
Ekran görüntüsü 2024-05-03 153512

Und ich habe den gesamten Code von der Website entfernt und es erneut versucht, aber der Fehler tritt immer noch auf.

Übersetzen

Fehler
Etwas ist schiefgelaufen.

Tritt dies auch im abgesicherten Modus auf? Könnten Sie auch die Browserkonsole auf Fehler überprüfen, wenn Sie darauf klicken, und in /logs nachsehen, ob es weitere Details gibt.

1 „Gefällt mir“

Der abgesicherte Modus ist aktiv und auf der Protokollseite ist kein Fehler sichtbar. Vielleicht verstehe ich es nicht.

Letzte Protokolle.
Ekran görüntüsü 2024-05-03 154929

Ich habe versucht, den abgesicherten Modus zu deaktivieren. Ich erhalte immer noch denselben Fehler.

Übrigens, wenn ich zum zweiten Mal darauf klicke, verschwindet der Fehler und die Startseite wird angezeigt.

Ich sehe einige Fehler, wenn die Theme-Komponenten geladen und die Plugins entladen werden.

Sie könnten sich Ihre letzten Anpassungen ansehen.

1 „Gefällt mir“

Vielen Dank für dein Interesse.

Letztes Plugin: GIF

Alle Plugins

Haben Sie JS-Anpassungen außerhalb der Remote-Komponenten?

Ich würde versuchen, alle Komponenten zu deaktivieren und sie einzeln zu aktivieren, bis der Fehler auftritt.

<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>

Diese Codes verursachen diesen Fehler.
Ich weiß nicht, wie ich das beheben kann.
Ich brauche diese Codes :frowning:

Sie verschieben Elemente, die Emberjs-Komponenten enthalten (hier ist die Tag-Liste), was meiner Meinung nach wahrscheinlich den Lebenszyklus der Komponente stört.

Am besten nutzen Sie hier die API.

In Ihrem Fall entweder:

  • Plugin-Outlets verwenden, wie ich es in Ihrem letzten Thema gezeigt habe. Da es diese jedoch für die neuesten Themen auf der Kategorieseite nicht gibt, müssen Sie sie anfordern.

  • Die Vorlage überschreiben. Dies ist aus Kompatibilitätsgründen keine gute Lösung, kann aber eine sofortige Alternative sein.

1 „Gefällt mir“

Ich habe diese Codes gefunden.

Das ist nicht das, was ich wollte, aber es wird vorerst reichen.

 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 = '/';

Wenn mir jemand helfen kann, warte ich. Danke :pray:

Ich würde Ihnen dringend davon abraten, diesen Weg zu gehen. Es ist, als würde man ein Pflaster auf eine Nebenwirkung kleben, anstatt die eigentliche Ursache des Problems zu beheben. Sie werden damit weitere Probleme schaffen (wie Ihr letzter Thema wegen des obigen Codes).

Sie können Ihr JS etwas benutzerfreundlicher für Discourse gestalten (der beste Weg ist immer noch die Verwendung von Plugin-Outlets, wenn Sie können).
Hier ist ein Beispiel. Es verwendet die API bei Seitenwechsel, führt Code auf einer bestimmten Route aus und kopiert das HTML vor dem Link (damit Sie auf das Tag klicken können):

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 „Gefällt mir“

Hallo @Arkshine
Das Ändern des Logo-Links hat nicht geholfen, ich habe diese Codes gelöscht.

Aber es gibt keinen anderen Weg. Ich muss die Tags so positionieren.
https://pvpfarm.com

Wenn ich jemanden bezahle, kann er anständige Codes schreiben, die funktionieren?

Und wo finden Sie diese Codes? (JS) Von GitHub - discourse/discourse: A platform for community discussion. Free, open, simple.?

Du kannst ein Thema im Marketplace erstellen, wenn du bezahlte Hilfe benötigst/wünschst. :+1:

1 „Gefällt mir“

Ich habe den Code dafür in #11 angegeben.

Hallo nochmal @Arkshine
Ich habe die von Ihnen angegebenen Codes hinzugefügt, nachdem ich diese Codes gelöscht habe, aber sie funktionieren nicht. Mache ich einen Fehler?

Bei mir funktioniert es:

Stellen Sie sicher, dass Sie \u003cscript type=\"text/discourse-plugin\" version=\"0.8\"\u003e beibehalten. , sonst funktioniert es nicht.

Ja, es funktioniert!
Es gibt nur einen kleinen Fehler.
Wenn ich auf das Logo klicke, erhöht sich die Anzahl der Tags.

Ich habe meinen obigen Code aktualisiert.

2 „Gefällt mir“

Ich weiß nicht, wie ich dir danken soll. Vielen Dank! :pray: :heart:

@Arkshine Entschuldigung, dass ich das Thema wieder aufgreife.
Vielen Dank nochmals. Ich habe einen Fehler in den von Ihnen bereitgestellten Codes gefunden.
Können Sie mir bitte helfen?
Ich habe versucht, die Codes zu korrigieren, aber es ist mir nicht gelungen.

Im Abschnitt „Neueste“ wird nur der Tag im zuletzt geöffneten getaggten Thema angezeigt.


Und wenn Sie eine Kategorie aufrufen, werden die Tags nicht angezeigt.

@ogulcan1787 Ich habe den obigen Code aktualisiert.

1 „Gefällt mir“