Add javascript to a theme component

Is there a good way to add javascript (one file, minimized) to a theme component so that it can be used in common/header.html?

1 Like

Got it working. Just added the JS (not minimized) into the common/header.html.

See discourse-highlight-text/header.html at master · sbernhard/discourse-highlight-text · GitHub

Would be good if someone could document this behavior to the theme /component developer guide.


How did you use the JS in your component? I’m using the Versatile Banner component and want to add a button that calls my custom JS function. I’ve put in the head as you mention but get a CSP error: Refused to execute inline event handler because it violates the following Content Security Policy directive: "script-src". Either the 'unsafe-inline' keyword, a hash ('sha256-...'), or a nonce ('nonce-...') is required to enable inline execution.

When calling my code via onclick="NavigateToCustomLoginUrl('facebook')" on a button.

Oh, think I answered my own question via An Introduction to Content Security Policy - HTML5 Rocks


Check loadScript in the codebase/meta for a systematic way to achieve this.