Этого нельзя добиться, просто указав параметр, поскольку drupal_add_js()
не поддерживает атрибут async
.
Рекомендуется использовать defer
, что (imho) лучше, поскольку не блокирует разбор HTML .
async
: скрипт извлекается асинхронно, затем синтаксический анализ HTML приостанавливается для выполнения сценария, затем анализ продолжается.
defer
:Сценарий извлекается асинхронно и выполняется только после выполнения анализа HTML.
Однако, если вам действительно нужен атрибут async
, вы можете реализовать hook_preprocess_html_tag
для изменения переменных темы, напримеритак:
function moduleortheme_preprocess_html_tag(&$variables) {
$el = &$variables['element'];
if ($el['#tag'] !== 'script' || empty($el['#attributes']['src'])) {
return;
}
# External scripts to load asynchronously
$async = [
'http://somesite.com/pages/scripts/0080/8579.js',
#...
];
if (in_array($el['#attributes']['src'], $async)) {
$el['#attributes']['async'] = 'async';
}
}