Load clientside script depending on route

  • I'm working on a public plugin for integrating the ExclServer game management system into NodeBB.
    The plugin has a number of different custom pages, e.g.: rules, servers, chat.

    How would I load a different clientside javascript script depending on what route the user is requesting?
    For example, if the user requests URI /exclserver-rules I want to load a different script than when the user requests URI /exclserver-chat. Just putting the scripts in the 'scripts' array of my plugin.json file doesn't do what I want it to, because that will load all scripts on any of the custom routes.

  • GNU/Linux Admin

    I'm thinking you'll want to have the scripts loaded asynchronously when the page loads (or is ajaxified to). You'll want to set up a listener on the client side page change hook for this.

    Can your scripts be rewritten for require.js compatibility?

  • It would be easiest to simply add a <script> tag to the .tpl file for each page, but sometimes the <script> tag is mysteriously removed when the page is served, not running the code in it.

  • See: https://github.com/kurt-stolle/nodebb-plugin-exclserver/blob/master/templates/exclserver/servers.tpl

    Why does the <script> tag sometimes not load after rendering the page?

Suggested Topics

| | |

© 2014 – 2022 NodeBB, Inc. — Made in Canada.