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?


Log in to reply
 

Suggested Topics

  • 5
  • 3
  • 3
  • 2
  • 1
| |