Ajouter JavaScript en bas d'une page

15

Comment puis-je ajouter des scripts JavaScript en bas d'une page, dans mon modèle?

Onita
la source
array('type' => 'inline', 'scope' => 'footer', 'weight' => 5). Vous pouvez utiliser Weight pour ajuster votre fichier en pied de page.
kalidasan

Réponses:

18

Je pense que vous pouvez le faire avec drupal_add_js () ; il semble que l'option clé de portée soit votre ami!

Pol Dellaiera
la source
5
Je l'utilise:drupal_add_js($theme_path.'/js/jquery.easing.1.3.js', array('type' => 'file', 'scope' => 'footer')); ?>
Onita
@Onite où nous devons mettre cela? à html.tpl.php?
john
2
Sur page.tpl.php
Onita
1
Est-ce le même code si je veux joindre un fichier js sur template.php?
CocoSkin
Cela ne serait-il pas écrasé lors de la mise à jour du thème?
isherwood
6

Dans votre thème, html.tpl.phpil y a une ligne <?php print $scripts; ?>.

C'est la ligne qui imprime le javascript dans votre page.

Vous pouvez le déplacer partout où vous le souhaitez, par exemple, le placer après tout le reste, juste avant la bodybalise de fermeture pour que tous vos scripts se chargent en bas.

Alex Weber
la source
2
Je ne suggérerais pas d'imprimer $scriptsau bas de html.tpl.php; cette variable inclut les balises de script pour jQuery et d'autres fichiers JavaScript Drupal. Contient $scriptsdes balises HTML qui peuvent être sorties à l'extérieur <head>?
kiamlaluno
1
non, les scripts n'ont que des balises 'script src' et du javascript en ligne, cela se fait dans quelques modèles et fonctionne comme un charme, je l'ai fait dans Zentropy, mon thème de base html5: drupal.org/project/zentropy
Alex Weber
3
Certains fichiers JS des modules contrib peuvent supposer qu'ils sont inclus dans la page <head>. Par exemple, quand ils définissent des variables globales ou une fonction appelée par un script en ligne (même si c'est une mauvaise pratique).
Pierre Buyle
5

Vous pouvez essayer d'ajouter le fichier comme ceci:

drupal_add_js('sites/all/themes/themname/js/skrollr.js', array('scope'=>'footer'));
Mahipal Purohit
la source