Si vous utilisez drupal_add_js()
dans votre fonction de création de formulaire, vous attachez JavaScript à une page, et c'est tout.
Si vous utilisez $form['#attached']['js']
, d'autres modules peuvent interagir, le tester et le modifier selon leurs besoins, en utilisant hook_form_alter()
. C'est la façon dont vous devez choisir chaque fois que votre JavaScript est fonctionnellement lié à un formulaire particulier.
En dehors de cela, ils sont fonctionnellement les mêmes.
Notez qu'il est généralement préférable d'utiliser des bibliothèques JavaScript que des fichiers JavaScript simples, car ils vous permettent de déclarer des versions, de conserver les relations entre JS et CSS, de gérer les dépendances, eh bien, ils sont généralement beaucoup plus puissants.
Bien sûr, vous devez alors utiliser $form['#attached']['library']
lorsque votre bibliothèque JavaScript est liée fonctionnellement à un formulaire particulier, et uniquement drupal_add_library()
lorsque aucune forme n'est liée de quelque manière que ce soit à la fonction de la bibliothèque.
drupal_add_js()
dans un fichier modèle, cela cassera les choses lorsque la mise en cache / agrégation est activée