Building themes for Drupal since ages ago...

Add JavaScript to Drupal 6 for the front page only

August 12, 2008 by Jeff

This cropped up in the Drupal forums today, again, so I dug this bit of code out since I was messing about with recently. If you want to load a .js file only for the homepage there's a couple of ways of doing it.

First in template.php you can simply add the following - which assumes you have saved the .js file in your theme folder. Adjust the path to suit (for example /js/myscript.js).

if (drupal_is_front_page()) {
  drupal_add_js(drupal_get_path('theme', 'mytheme').'/myscript.js', 'theme');
}

This is nice since you can add a few more parameters to it - see the full story here http://api.drupal.org/api/function/drupal_add_js

The other more brutal way is to conditionally load the script directly in the head of page.tpl.php, such as:

<?php if ($is_front): ?>
  <script type="text/javascript" src="/sites/all/themes/mytheme/myscript.js"></script>
<?php endif; ?>

I, like a few others, made the immediate assumption that you could conditionally load a JavaScipt file using vars in a preprocessor function, but I am yet to get this to work. If you know of a way, I'd love to know.

Comments

Post new comment

Leave a comment, suggestion or ask a question!

I only ask that you respect the comments of others and keep it clean.

You can use some basic html such as a, em, strong, cite, code, ul, ol, li, dl, dt, and dd. Line-breaks and paragraphs will be inserted automatically.

You can use Markdown if you want.

If Mollom asks, please fill out the captcha.