I have a module that will provide a dropdown when creating a new block. Selecting either none, option 1 or option 2 will add a corresponding class to that block. That class will be targeted by a small (>4kb) jquery file. The file needs to be able to access every page since blocks can be put anywhere on the site.

I have seen multiple methods of adding JS files to websites, including editing the theme .info file. What is the best way to accomplish what I am trying to do? If the info file is the best way to go, is there a way to programmatically add the JS file to the info file?

1 Answer 1


You can add the file to a theme's or module's .info file using scripts[]:

scripts[] = js/my-script.js

The path should be relative to your module root.

See also Writing theme .info files and Writing module .info files.

  • I know I can do that, but I want to be able to have it completely taken care of upon the module being enabled. Any Joe Schmoe should be able to enable this module, and not have to modify the .info file. Is there a way I can do this without having to manually add the script?
    – mattcoker
    Commented Mar 5, 2014 at 18:59
  • You are not adding any script. With that line you tell drupal your module needs that file in every page.
    – Astrayus
    Commented Mar 5, 2014 at 19:57
  • @mattcoker That's exactly what that scripts[] line does. When the module is enabled, Drupal reads its .info file and finds the scripts[] line, and then automatically includes the script on every single page. Commented Mar 5, 2014 at 20:42
  • My apologies. I thought you meant specifically adding that to my theme .info file. I totally understand now.
    – mattcoker
    Commented Mar 5, 2014 at 21:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.