Probleme beim Hinzufügen der CSS/JS-Komponente: Robuste Links zur Beibehaltung der Linkfunktionalität

TL;DR Zusammenfassung:

  • Probleme bei der Einbindung von JavaScript- und CSS-Links zur Aktivierung von Robustify-Tooltip-Popups für Hyperlinks auf unserem Discourse.
  • Einige Ähnlichkeiten mit diesem früheren Fall, obwohl wir davon absehen, die Robustify-API abzufragen; es wäre vielleicht sinnvoll, diesen Weg irgendwann zu gehen, aber wir hatten vor, zunächst nur Popups für korrekt umschlossene Hyperlinks zu aktivieren.

Details:

Ich schreibe Ihnen mit einer hoffentlich einfachen Frage zur Implementierung einer kleinen CSS/JS-App auf unserem Discourse-Forum: Wir versuchen, eine nette kleine App zu verwenden, die von Mementoweb zusammengestellt wurde, die eine Popup-Box an alle Hyperlinks auf einer Seite anhängt, so dass man wählen kann, ob man auf die Seite zugreift oder eine frühere gecachte Version der Seite anzeigt, falls der Link nicht mehr funktioniert. Es ist eine wirklich nette Funktion!, und wir hoffen, dass sie einige der unvermeidlichen Probleme lösen könnte, wenn man ein paar Jahre später auf eine Website zurückkommt und tote Links zu nicht mehr gewarteten Seiten findet. Anfangs hoffte ich, nur zu versuchen, sicherzustellen, dass es funktioniert, wenn einer von uns manuell einen Code auf der Robustify-Website generiert (Beispiel).

Die App läuft mit ein paar Codezeilen - Links sind mit einem längeren a href-Tag umschlossen, und es gibt Links zu einem CSS-Stylesheet und etwas Javascript-Code in den Head-Tags. Ich war mir nicht sicher, ob Discourse Javascript-Anpassungen zulassen würde, aber ich war wirklich ermutigt, als ich die Anfänger-Anleitung las und sah, wie viel Spielraum es für Modifikationen gab. Wir verwenden ein Remote-Theme (Sam’s Simple Theme) und ich habe versucht, unseren Code als neues Komponente zum Website-Header hinzuzufügen:


Ich konnte das bisher noch nicht zum Laufen bringen, dachte aber gestern, ich hätte es gelöst, als ich mich über Plugins informierte und unseren JS-Typ-Wert auf “text/discourse-plugin” version=“0.8.13” umstellte; ich habe auch versucht, die leichten Variablen der Verlagerung des CSS zu lösen (direktes Verlinken des Sheets anstelle als DOI; Kopieren der Tags direkt in den CSS-Bereich; Einbeziehung als Embedded CSS usw.), ohne Erfolg - Beiträge mit umschlossenen Links erscheinen immer noch ohne Popup:


Jede Anleitung hier wäre sehr willkommen!, und ich werde diesen Beitrag hochschieben, falls ich in der Zwischenzeit eine Lösung finde.

Können Sie einen Screenshot Ihrer JavaScript-Konsole im Browser und des Network-Tabs teilen? Es könnte sich um ein Problem mit der Content Security Policy (CSP) handeln, das verhindert, dass der JS-Code auf der Seite geladen wird.

2 „Gefällt mir“

Danke Faizaan :slight_smile: Unten ist ein Screenshot beigefügt. Ich kann kein CSP-Problem erkennen, bin aber gerne bereit, eine andere Maschine auszuprobieren, falls dies helfen könnte:

Ich habe mir den Code angesehen und es scheint, dass es eine Art Überschreibung gibt, die verhindert, dass die JavaScript-Tags, die im Screenshot im vorherigen Beitrag abgebildet sind, eingebunden werden:

image

Ich bin mir nicht zu 100 % sicher, ob dies das Ergebnis des Austauschs des Skript-Typs von text/javascript zu text/discourse-plugin ist. Ich habe das Gefühl, dass es mit dem ursprünglichen Wert nicht funktionierte, und es gibt keinen Hinweis mehr auf das JS DOI, das im Komponentencode angegeben ist.

Danke für die Unterstützung dabei – ich frage mich, ob es einfacher sein könnte, die vollständigere API zu konfigurieren, wenn es weitere Probleme beim Einrichten der einzelnen Links gibt.