Если подробнее.
Есть красивый слайд шоу. Где необходимо подключить 2 js скрипта , вернее библиотека jquery.
Так как я делаю slide только для главной. Планировала подключить только для главной через блок (т. к. сайт мультиязычный), но как показалось, что это не возможно даже при вставке самого текста java.
С первым js все нормально (отвечает за миниатюры под слайдами)
Я его подключил через template.php для главной, а именно
function corporateclean_preprocess_page(&$variables) {
if (drupal_is_front_page()) {
// Подключение скрипта с именем script.js, который лежит в корне темы
$variables['scripts'] = drupal_add_js(drupal_get_path('theme', 'corporateclean') . 'js/jquery.easing.1.3.js');
}
}
Со вторым данный эффект не прошел. Начал всеми способами подключать. И через .info, и page.tpl.php, и через html. Никак.
Тогда начал убирать, смотреть с чем он может конфликтовать. Ни каких вариантов не дало.
И только сейчас я добился результата. А именно просто вставил html в теги
Весь текст js. Все работает. Но раза два вылетали ошибки ...../locale.ini Так как работаю на локальной машине думаю ошибки денвера. Но все же не исключаю.
Проблема в том, что из-за этого очень огромный получается материал страницы. Из-за этого js. Страница получается огромной и мне это не нравится. Если есть варианты в чем проблема, почему не подключается напрямую даже так scripts[] = js/jquery.eislideshow.js
прошу написать. На всякий случай прикрепил данный файл
Комментарии
вот в формате txt
А html смотрите? строк
<script type="text/javascript"
новых не прибавляется?Объединение js стоит?
Код весь чистил как говорится до нуля, ничего лишнего. Объединение js не стоит. Честно говоря боюсь, так как подключено 6 громоздких js. Но проверял между собой не конфликтуют. Общих переменных нет.
Кеш чистили?
Давайте серьезнее. Конечно чистил.
как варинат, причиной может быть порядок вывода подключаемых скриптов, повлиять на порядок можно через тот же drupal_add_js() через второй аргумент, см описание функции. В логах браузера что по этому поводу написано?
С вариантом порядок вывода думаю без смысле но, писал, что пробовал убирать все подключенные js, без результатно.
Да про логи спасибо. Да действительно есть.
Вот все лаги:
Failed to load resource: the server responded with a status of 404 (Not Found) http://moi.ru/sites/all/themes/corporatecleanjs/jquery.eislideshow.js?n2...
Failed to load resource: the server responded with a status of 404 (Not Found) http://moi.ru/style.css
Failed to load resource: the server responded with a status of 404 (Not Found) http://moi.ru/sites/all/themes/corporatecleanjs/jquery.easing.1.3.js?n2oh0x
Uncaught TypeError: Property '$' of object [object Object] is not a function
Uncaught TypeError: Object [object Object] has no method 'eislideshow' (index):731
event.returnValue is deprecated. Please use the standard event.preventDefault() instead. jquery.js:9597
И да, кстати, каким образом вы его инициализируете?
Так попробуй:
<?php
function corporateclean_preprocess_page(&$variables) {
if (drupal_is_front_page()) {
// Подключение скрипта с именем script.js, который лежит в корне темы
drupal_add_js(drupal_get_path('theme', 'corporateclean') . 'js/jquery.easing.1.3.js');
}
}?>
Попробовал, не правильно
Parse error: syntax error, unexpected '<' in Z:\home\moi.ru\www\sites\all\themes\corporateclean\template.php on line 107
ну смотри, что там на 107 строчке. Синтаксическая какая-то ошибка, написано же!
Да извини, там php стоял. Вставил не смотря.
Эффект тот же jquery.easing.1.3.js (за миниатюры работает)
jquery.eislideshow.js нет. Подключен но ничего не происходит. Кэш чистил
После того как, пытаюсь изменить появляется эта ошибка опять.
Warning: file_get_contents(sites/all/themes/corporatecleanjs/jquery.eislideshow.js) [function.file-get-contents]: failed to open stream: No such file or directory в функции _locale_parse_js_file() (строка 1488 в файле Z:\home\moi.ru\www\includes\locale.inc).
ну, а теперь пишет, что нету файла jquery.eislideshow.js в твоей директории.
Я писал, что там он есть и никуда не девался. В этом то и прикол
дай ссылку на всю библиотеку.
Работаю на denwerе. Или ты имеешь ввиду путь установить полный?
попробуй полный прописать
Не помогло
как слайд-шоу называется, откуда скачивал?
http://tympanus.net/Tutorials/ElasticSlideshow/index2.html
Отсюда.
И еще делаю меню в подвале. Меню тоже с этого сайта.
ТОЧНО такая же проблема. Все аналогично тоже не подключается один js. Все абсолютно так же.
я про подключение плагина спросил потому, что он у Вас нигде не инициализируется, то есть не срабатывает, а просто регистрирует плагин и на этом вся его деятельность заканчивается, а вообще далее этот плагин нужно инициализировать, однако каким образом его удалось переписать так, чтобы он работал? То есть вы превратили jQuery плагин в обычный js?
Смотрите ссылку выше. Там очень хорошо описано данный слайд. И по этому мне это в голову не приходило. Там не идет и речи об этом. Стоит модуль на сайте jquery_update. Я не думаю так. Да и в директорию template.php я его описал как jquery
<?php
drupal_add_js(drupal_get_path('theme', 'corporateclean') . 'js/jquery.easing.1.3.js');
?>
Функция drupal_get_path возвращает путь без / в конце, соответственно код должен быть как минимум такой:
<?php
drupal_add_js(drupal_get_path('theme', 'corporateclean') . '/js/jquery.easing.1.3.js');
?>
Если вы хотите нормальной помощи в решении вопроса, потрудитесь как минимум создать тестовую площадку доступную в интернете.
Спасибо. Это решила проблему по ошибкам 404. Честно не знал про drupal_get_path.
Ну не как не решило по второму.
Uncaught TypeError: Object [object Object] has no method 'eislideshow'
Я думаю нашел проблему. Оказывается, нужно выстроить обращения к библиотекам в определенной последовательности и закинуть всю подгрузку в хедер.