js()
Creates a script tag to load a javascript file
js(Kirby\Cms\Plugin|Kirby\Cms\PluginAssets|array|string $url, array|string|bool|null $options = null): string|null
Parameters
| Name | Type | Default | 
|---|---|---|
| $urlrequired | Kirby\Cms\PluginorKirby\Cms\PluginAssetsorarrayorstring | 
				no default value | 
| $options | arrayorstringorboolornull | 
				
															null
									 | 
							
Return types
stringornull
Examples
Creating a single script tag
<?= js('assets/js/site.js') ?>
Creating multiple script tags
<?= js([
  'assets/js/jquery.js',
  'assets/js/jquery.ui.js',
  'assets/js/site.js',
]) ?>
Autoloading template specific script files
<?= js('@auto') ?>
Template specific JS files must be located in /assets/js/templates and named like the template.
| Template | JS file | 
|---|---|
| /site/templates/project.php | /assets/js/templates/project.js | 
| /site/templates/home.php | /assets/js/templates/home.js | 
| /site/templates/blog.php | /assets/js/templates/blog.js | 
Async
If you want the JS files to be loaded asynchronously (if supported by the browser), you can set a second parameter to true:
<?= js('assets/js/site.js', true) ?>
This also works with an array of paths:
<?= js([
  'assets/js/jquery.js',
  'assets/js/jquery.ui.js',
  'assets/js/site.js',
], true) ?>
Other attributes
You can also pass an array of completely custom attributes like the defer attribute:
<?= js('assets/js/site.js', ['async' => true, 'defer' => true, 'data-something' => 'my-value']) ?>