views:

157

answers:

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.

+6  A: 

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!

mac