-
Book Overview & Buying
-
Table Of Contents
Moodle JavaScript Cookbook
Now that we have loaded our JavaScript file, we need a method to execute that code. Once again, we may use the Page Requirements Manager $PAGE to generate a call to our JavaScript function.
This recipe describes a basic technique for executing your JavaScript code when the page is loaded. More sophisticated techniques based on handling DOM events with the Yahoo! User Interface library will be covered in later chapters.
Set up a page requirejs_init.php with the following content:
<?php
require_once(dirname(__FILE__) . '/../config.php');
$PAGE->set_context(get_context_instance(CONTEXT_SYSTEM));
$PAGE->set_url('/cook/requirejs_init.php');
$PAGE->requires->js('/cook/requirejs_init.js');
$PAGE->requires->js_init_call('hello');
echo $OUTPUT->header();
echo $OUTPUT->footer();
?>
Set up the accompanying JavaScript file, requirejs_init.js, with the following content:
function hello(Y)
{
alert('Hello World!');
}
Now when we load the page, we see that our JavaScript alert is executed, assuring us that our code is loading and executing correctly, as seen in the following screenshot:

We wish to make a call to our JavaScript function named hello. This is achieved with the js_init_call method. We pass one parameter, which is a string containing the name of the function we wish to call, which is hello.
When the document is rendered, the js_init_call method ensures that a call to our JavaScript function is generated. This example will generate the following JavaScript:
hello(Y);
This JavaScript is then included inside a <script> tag at the end of the <body> tag of the final page.
Change the font size
Change margin width
Change background colour