Ajouter des javascripts externes

20

Est-il possible d'ajouter des javascripts externes directement dans le fichier .info d'un thème?
par exemple scripts [] = http://cdn.jquerytools.org/1.2.6/jquery.tools.min.js

JurgenR
la source
Cherchez-vous simplement à ajouter la version CDN de jQuery Tools à votre thème, ou demandez-vous explicitement si cela peut être fait à partir du fichier .info d'un thème?
mpdonadio
Il s'agit explicitement d'ajouter du javascript externe au fichier .info
JurgenR
Vous vouliez donc l'ajouter au fichier .info et vous avez accepté une réponse qui ne parle pas du tout du fichier .info et montre la méthode drupal_add_js?
mpdonadio
Oui, si cela ne fonctionne pas dans le fichier info, je suis content de la meilleure solution possible.
JurgenR

Réponses:

24

Dans le fichier template.php de votre thème, utilisez drupal_add_js () pour la méthode de prétraitement de la page (ou un prétraitement équivalent).

function hook_preprocess_page(&$vars) {
  drupal_add_js('http://cdn.jquerytools.org/1.2.6/jquery.tools.min.js', 'external');
}
drmonkeyninja
la source
Je reçois une erreur javascript lors de l'utilisation de cette fonction, lorsque je mets le script à l'intérieur (footer) html.tpl.php, cela fonctionne.
JurgenR
Quelle erreur? Drupal génère-t-il le balisage de script correct lorsque vous utilisez cette fonction si vous vérifiez le code source?
drmonkeyninja
L'ajout du tableau d'options l'a corrigé. Je suppose que c'était un problème de poids. drupal_add_js (' cdn.jquerytools.org/1.2.6/jquery.tools.min.js ', array ('type' => 'external', 'scope' => 'header', 'weight' => 10)) ; Thnx!
JurgenR
@Jurgen drupal_add_js()accepte également une chaîne comme deuxième paramètre; dans ce cas, il est considéré comme l'index "type" utilisé à partir du $optionstableau. Si vous devez définir d'autres options, vous devez utiliser un tableau.
kiamlaluno
@drmonkeyninja Comment ajouter JS dans n'importe quel module .. ??
Nishant
2

La méthode d'ajout de javascript dépend de la raison pour laquelle vous ajoutez du javascript. Il existe différentes façons d'ajouter js.

  • En définissant dans le fichier theme.info.

  • L'ajout en ligne.

  • Ajout d'un fichier js externe.

Vous pouvez ajouter un fichier info js avec cette simple ligne de code

scripts[] = js/myscript.js

Ou vous pouvez utiliser la fonction php fournie par drupal drupal_add_js

Cette fonction vous permet d'ajouter facilement un fichier JavaScript ou aide à définir un code en ligne sur n'importe quelle page de votre thème et prend 5 paramètres ( vous le voyez dans la référence de l'API ).

Il y a un article détaillé à ce sujet ici.

esafwan
la source
2
vous ne pouvez pas définir un JS externe dans un fichier d'informations, apparemment drupal.stackexchange.com/a/196874/12010
batigolix