В Drupal используется далеко не свежий jQuery. Если просто заменить misc/jquery.js новой версией, но могут вылезти баги в разных местах. Есть модуль jquery_update, с помощью которого можно немного обновить jQuery, но для подключения некоторых JS-библиотек этого всё равно недостаточно.
Недавно понадобился новый jQuery для highcharts. В итоге сделал финт ушами с подключением нового jQuery только на избранных страницах с диаграммами. Модуль выглядит так (существенные месте прокомментированы):
<?php function highcharts_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) { static $included = FALSE; if ($op == 'alter' && !$included && strstr($node->body, "chart")) { // условие зависит от модуля $dir = drupal_get_path('module', 'highcharts'); drupal_add_css("$dir/highcharts.css"); drupal_add_js("$dir/switch_jquery.js"); // отключаем стандартный jQuery drupal_add_js("$dir/lib/jquery-1.3.2.min.js"); // подключаем новый drupal_add_js("$dir/highcharts.js?v5"); drupal_add_js("$dir/lib/highcharts/highcharts.js"); // подключаем JS-библиотеку } }
Файл switch_jquery.js содержит одну строчку: jQuery.noConflict(true).
Идею подглядел в модуле jQuery Multi.
Результат: http://www.sfu-kras.ru/accreditation, http://research.sfu-kras.ru/nir/2011. Работает почти везде, не работает на 1,5 из 3 браузеров андроида.
Комментарии
А hook_js_alter не катит?
в 5 и 6-ке не катит
а в теме в тегах ничего о версиях не сказано