WebThinker
@WebThinker
Жизнь слишком коротка, чтобы ее просто про срать.

Как в Drupal 7, всем выводимым в шапке скриптам js указать тип скрипта?

Здравствуйте! Подскажите пожалуйста, как можно решить проблему. Ситуация такова, я работаю в среде Drupal7, а там все js скрипты выводятся переменной <?php print $scripts; ?> а скрипты подключаются через файл name_themes.info с инструкцией scripts[] = 'myjs.js'.
Так вот, все бы хорошо, но они выводятся без указания типа скрипта type="text/javascript"

Вывод выглядит вот так
<script src="myjs.js"></script>
А надо, чтобы выглядело так
<script type="text/javascript" src="myjs.js"></script>

или
<script type="text/javascript" async src="myjs.js"></script>


Если все скрипты прописать в ручную, в файле html.tpl.php между тэгами , то наверно это будет не кашерно по отношению к API Drupal.

Есть ли решение данной проблемы?

Можно конечно сделать так, прописав в файле template.php
function имяТемы_preprocess_page(&$vars) {
  if ($vars['type'] == 'my-node-type') {
    drupal_add_js(drupal_get_path('theme', 'имяТемы') . '/myjs.js');
  }
}

Тогда опять же, где прописать async и придется создавать один файл myjs.js и в него импортировать остальные скрипты, а я не знаю как выполняется импорт скриптов, ну и все это придется делать, потому что в template.php не может существовать 2 или более одинаковых функций.
Спасибо!
  • Вопрос задан
  • 229 просмотров
Решения вопроса 1
WebThinker
@WebThinker Автор вопроса
Жизнь слишком коротка, чтобы ее просто про срать.
В общем поступил вот так.
Написал не замысловатый скриптик myj.js, его подключил через файл инфо с названием темы.
$import("/js/myjs1.js");
$import("/js/myjs2.js");
$import("/js/myjs3.js");
function $import(path){
    var  scripts = document.write("<" + "script async src=\"" + path + "\"></" + "script>");
}

А через него уже импортом прогнал нужные мне скрипты с нужным мне атрибутом. Работает прекрасно.
Правда не знаю, кашерно ли это. Отпишитесь по возможности, ваше мнение всегда ценю.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы