テーマコンポーネントにJavaScriptを追加する

共通の header.html で使用できるよう、テーマコンポーネントに JavaScript(単一の最小化ファイル)を追加する良い方法はありませんか?

「いいね!」 2

動作しました。JS(未圧縮版)を common/header.html に追加しただけです。

discourse-highlight-text/common/header.html at master · sbernhard/discourse-highlight-text · GitHub をご覧ください。

この動作について、テーマ/コンポーネント開発者ガイドにドキュメント化してくれると助かります。

「いいね!」 2

コンポーネント内で JS をどのように使用しましたか?私は Versatile Banner コンポーネントを使用しており、カスタム JS 関数を呼び出すボタンを追加したいと考えています。ご指摘の通り head 内に記述しましたが、CSP エラーが発生します。

dev.londonbikers.com/:1 インラインイベントハンドラーの実行が拒否されました。これは、以下のコンテンツセキュリティポリシーディレクティブに違反するためです: "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/"。インライン実行を有効にするには、'unsafe-inline' キーワード、ハッシュ ('sha256-...')、または nonce ('nonce-...') のいずれかが必要です。

ボタンで onclick="NavigateToCustomLoginUrl('facebook')" としてコードを呼び出した際に発生します。

ああ、Content security policy  |  Articles  |  web.dev を見て、自分で答えを見つけたような気がします。

「いいね!」 2

コードベース/メタで loadScript を確認し、これを達成するための体系的な方法を探してください。

「いいね!」 2