1

Is there a drupal function or convention for including JavaScript onto a page or form?

My current solution is to hard code the script tag as part of the output of my form's theming function, but it seems like there should be a better way, since JavaScript should generally be the last thing loaded on the page.

mac
43.2k27 gold badges126 silver badges133 bronze badges
asked Nov 23, 2009 at 23:56

1 Answer 1

6

The function you are looking for is called drupal_add_js(). It lets you control several aspects of adding js to pages.

Copied and pasted from the link provided above, these are the parameters of the function:

$data (optional) If given, the value depends on the $type parameter: * 'core', 'module' or 'theme': Path to the file relative to base_path(). * 'inline': The JavaScript code that should be placed in the given scope. * 'setting': An array with configuration options as associative array. The array is directly placed in Drupal.settings. You might want to wrap your actual configuration settings in another variable to prevent the pollution of the Drupal.settings namespace.

$type (optional) The type of JavaScript that should be added to the page. Allowed values are 'core', 'module', 'theme', 'inline' and 'setting'. You can, however, specify any value. It is treated as a reference to a JavaScript file. Defaults to 'module'.

$scope (optional) The location in which you want to place the script. Possible values are 'header' and 'footer' by default. If your theme implements different locations, however, you can also use these.

$defer (optional) If set to TRUE, the defer attribute is set on the tag. Defaults to FALSE. This parameter is not used with $type == 'setting'.

$cache (optional) If set to FALSE, the JavaScript file is loaded anew on every page call, that means, it is not cached. Defaults to TRUE. Used only when $type references a JavaScript file.

$preprocess (optional) Should this JS file be aggregated if this feature has been turned on under the performance section?

Hope this helps!

answered Nov 24, 2009 at 0:30
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

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

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.