Existe-t-il une bonne méthode pour ajouter du JavaScript (un seul fichier, minimisé) à un composant de thème afin qu’il puisse être utilisé dans common/header.html ?
C’est bon, ça fonctionne. J’ai simplement ajouté le JS (non minimisé) dans common/header.html.
Voir discourse-highlight-text/common/header.html at master · sbernhard/discourse-highlight-text · GitHub
Ce serait bien si quelqu’un pouvait documenter ce comportement dans le guide de développement des thèmes/composants.
Comment avez-vous utilisé le JS dans votre composant ? J’utilise le composant Bannière Versatile et je souhaite ajouter un bouton qui appelle ma fonction JS personnalisée. Je l’ai placé dans l’en-tête comme vous l’avez mentionné, mais je reçois une erreur CSP :
dev.londonbikers.com/:1 Exécution du gestionnaire d'événements en ligne refusée car elle viole la directive de politique de sécurité du contenu suivante : "script-src https://dev.londonbikers.com/logs/ https://dev.londonbikers.com/sidekiq/ https://dev.londonbikers.com/mini-profiler-resources/ https://dev.londonbikers.com/assets/ https://dev.londonbikers.com/brotli_asset/ https://dev.londonbikers.com/extra-locales/ https://dev.londonbikers.com/highlight-js/ https://dev.londonbikers.com/javascripts/ https://dev.londonbikers.com/plugins/ https://dev.londonbikers.com/theme-javascripts/ https://dev.londonbikers.com/svg-sprite/". Le mot-clé 'unsafe-inline', un hachage ('sha256-...') ou un nonce ('nonce-...') est requis pour autoriser l'exécution en ligne.
Lorsque j’appelle mon code via onclick="NavigateToCustomLoginUrl('facebook')" sur un bouton.
Ah, je crois que j’ai répondu à ma propre question via Content security policy | Articles | web.dev
Vérifiez loadScript dans la base de code/métadonnées pour une méthode systématique afin de réaliser cela.