Categories: Joomla

How to Add Custom JavaScript to Joomla: A Comprehensive Guide

When it comes to extending the functionality of your Joomla website, custom JavaScript (JS) can be a game-changer. Whether you want to add JavaScript to a Joomla article, include a JS file to your Joomla template, or insert JavaScript into a module, component, or plugin, this guide has got you covered. Here, we’ll explain all you need to know about adding custom JavaScript to your Joomla site. So, without further ado, let’s dive in!

Adding JavaScript to a Joomla Article

When you want to inject JavaScript into a Joomla article, the process is relatively straightforward.
  1. Open the article you want to edit.
  2. In the editor, click on the “Toggle Editor” button. This will switch the editor to its raw HTML mode.
  3. In this mode, you can insert your custom JavaScript  directly into the article.
  4. If the code gets stripped then go to Global Configuration, switch the editor to no editor and add the code. Few editors may not allow you to add javascripts to the article.

Example to Add Javascript

 <script> let d = new Date(); document.body.innerHTML = "<h1>Today's date is " + d + "</h1>" </script>

Example to Add Javascript Files

<script src="file.js"></script>
It’s as simple as that! You can read more about creating and editing articles in Joomla here.

Adding a JS File to a Joomla Template

If you want to add a JavaScript file to a Joomla template, you need to edit the template’s index.php file. Here’s how:
  1. Go to the Joomla 4 administrator panel.
  2. Click on System > Site Templates
  3. Select your template and click on “Edit Main Page template.”
  4. Find a suitable location in the index.php file to insert your JavaScript file. It’s best to place it before the </head> tag.
  5. Include the JavaScript file by adding <script src="path_to_your_file.js"></script>. Replace “path_to_your_file.js” with the actual path to your JavaScript file.
  6. You can do the same using FTP
You can also add the javascript file using the following PHP code
<?php
$document = JFactory::getDocument();
$document->addScript('/media/system/js/sample.js');
?>
The above code instructs Joomla to load the sample.js file from the specified path. Here, the path is relative to your Joomla root directory. To ensure the right path, use the absolute URL to JavaScript in Joomla. When you add a JS file to a Joomla template, you allow for cleaner, more manageable code, and ensure that the same script can be used across different parts of your website. For more insights on working with Joomla templates, check out this detailed guide.

Adding JavaScript to Joomla Modules, Components, or Plugins

Just as with  templates, you can add custom JavaScript to Joomla modules, components, or plugins. This could be particularly useful if you want a specific module, component, or plugin to carry out a JavaScript function. To add JavaScript to a Joomla module, you would typically edit the module’s PHP files like default.php which can be generally found inside the tmpl folder and insert your JavaScript code. However, always ensure that you follow the Joomla best practices to prevent any potential conflicts or errors.  

Frequently Asked Questions​

You can add JavaScript to a Joomla article by opening the article for editing, switching the editor to raw HTML mode, and inserting your custom JavaScript between <script> tags.

You can add JavaScript to a Joomla module by locating the module’s PHP file which can be found at

modules/mod_your_module/tmpl/default.php. Edit the default.php file and insert the code with addScript.

You can add an absolute URL to JavaScript in Joomla by adding the full URL in the src attribute of the script tag, like so: <script src="https://example.com/path_to_your_file.js"></script>.

You can add JavaScript to Joomla’s head by editing your template’s index.php file and inserting your script tag before the </head> tag.

Alternately when you add the addScript Joomla function, it will automatically add all the scripts into the head of the Joomla website.

For more tips, tricks, and guides on how to make the most of your Joomla site, be sure to check out our blog.

Finally, if you’re looking to enhance your Joomla site even more, consider hiring a Joomla programmer. A professional can help you incorporate more advanced features and ensure your website is running smoothly.

If you have any questions about adding custom JavaScript to Joomla or any other Joomla-related topic, feel free to reach out. We’re here to help!

This article is intended for educational purposes only. All code should be used responsibly and appropriately. Always remember to backup your site and test in a staging environment before making changes to your live site.

For more information on Joomla, check out the official Joomla documentation.

Abhilash Sahoo

Abhilash Sahoo, with 14 years of experience, is a Certified Joomla and WordPress Expert and the Founder & CEO of Infyways Solutions, specializing in innovative web development solutions.

Share
Published by
Abhilash Sahoo

Recent Posts

HubSpot vs WordPress: A Comparison Overview of Popular CMSs.

HubSpot vs WordPress? What best? Indeed, for more than ten years, WordPress has been the…

3 months ago

Boost Your Website’s Performance with Expert WordPress Speed Optimization Services

WordPress Speed Optimization Services for Website maintenance is a full-time job. Apart from introducing new…

3 months ago

Fixing There Has Been A Critical Error On This Website WordPress

Nothing is more terrifying than when your WordPress website is going down, especially when you…

4 months ago

WordPress vs Ghost: Exploring the Differences!

WordPress vs Ghost, who wins actually? Despite its current position as the world's leading content…

4 months ago

Top WordPress Security Services Providers in 2023

The security and safety of any website are essential for its health and well-being. The…

4 months ago

Top 12 WordPress Website Management Tools for 2023

Let's explore the definition of WordPress Website Management Tools before moving on to the finest…

6 months ago