Russian TYPO3 community Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community  

Вернуться   Russian TYPO3 community > Обсуждение общих технических вопросов > Общие вопросы

Ответ
 
Опции темы Опции просмотра
Старый 31.08.2007, 23:37   #1
Winston James
Новенький
 
Регистрация: 28.05.2005
Адрес: Stuttgart
Сообщений: 29
Question Почему могут не работать относительные ссылки на внешний JavaScript?

В классе class.t3lib_querygenerator.php есть такой фрагмент:

if ($this->extJSCODE) {
$out.='<script language="javascript" type="text/javascript" src="'.$GLOBALS['BACK_PATH'].'../t3lib/jsfunc.evalfield.js"></script>

<script language="javascript" type="text/javascript" src="'.$GLOBALS['BACK_PATH'].'jsfunc.tbe_editor.js"></script>

<script language="javascript" type="text/javascript">'.$this->extJSCODE.'</script>';
return $out;
}

Для проверки работоспособности (там не все в порядке) я нашпиговал соответствующие скрипты alertами и установил, что эти файлы фактически не подключаются.

Я переставил скрипты в местную директорию (там, где сидит активный модуль) и убрал соответствующие префиксы перед названиями файлов.

В этом варианте происходит обращение к скриптам, алерты выпрыгивают, где надо, и можно нормально искать ошибки.

Относительные пути в указаном фрагменте вычисляются правильно (я проверял), поэтому я не понимаю, почему же нет обращения к этим файлам. Очистки кэша, перезапуск браузеров и т. д. не помогают...

Может быть кто-то уже сталкивался с подобной непоняткой?
Winston James вне форума   Ответить с цитированием
Старый 01.09.2007, 12:46   #2
void
Senior Member
 
Аватар для void
 
Регистрация: 14.03.2006
Адрес: Russia, Penza
Сообщений: 1,504
Отправить сообщение для void с помощью ICQ
По умолчанию

Они подключаются, в режиме бекенда. Проверено. Вместо алертов - используйте лучше расширение firebug для файрфокса и брейкпоинты в нем.
__________________
TYPO3 FAQ
void вне форума   Ответить с цитированием
Старый 01.09.2007, 21:34   #3
Winston James
Новенький
 
Регистрация: 28.05.2005
Адрес: Stuttgart
Сообщений: 29
Question Вызов внешних скриптов через относительные пути

Так речь и идет о бэкенде (sorry, что сразу не написал)!

Именно в бэкенде расширения Direct Mail я пытаюсь сделать специальную выборку (special query). Так вроде бы не было никаких проблем, но вот захотелось мне проверять поля с датой (напр. Старт и Стоп - чтобы загодя отсылать мэйлы с предупреждениями). Так вот: изменения даты у меня не воспринимаются.

Стал я копать глубже и докопался, что это-то и должно происходить в подключаемых внешних скриптах (только для полей сконфигурированных в TCA как date - в остальных случаях эти файлы не подключаются - видимо поэтому никто и не обращает на них внимания).

Когда я, как уже писал выше, перенес эти файлы непосредственно в директорию ..\mod\ этого расширения и убрал пути из приведенного выше фрагмента, мне удалось попасть "внутрь" скриптов и найти причину странной обработки даты. Там, в скрипте должно происходить изменение скрытого числового поля формы в соответствие с введенной в видимом поле датой. Но для обращения к полям формы необходимо обращаться к форме по имени, а про имя-то как раз и забыли: обращения происходит к пустому месту: [][ИмяПоля][Значение]. Естественно - ничего не выходит.

Короче, я ошибку в исходниках устранил (может быть и не очень элегантно, но все заработало), но когда я возвратился к оригинальному варианту вызова внешних скриптов, то все осталось по-прежнему: их как бы не существует с точки зрения модуля, как будто бы их и не вызывали!

Причина врядли кроется в синтаксисе приведенного фрагмента. Я проверял: пути типа ../../../../typo3 вычисляютя верно. Но что же тогда? Никак не въеду - наверное я тупой...

За наводку на firebug - спасибо, обязательно попробую.
Winston James вне форума   Ответить с цитированием
Старый 02.09.2007, 01:37   #4
Winston James
Новенький
 
Регистрация: 28.05.2005
Адрес: Stuttgart
Сообщений: 29
Thumbs up Я, кажется, понял...

Сегодня включил комп, стартанул мой Typo3, вышел на старое место, и - о чудо! - все заработало! Уже тысячи раз происходило со мной подобное, и происходит каждый день с миллионами других, а все не перестаю удивляться...

Я тогда снова делаю незначительное изменение в скрипте - и оно опять не акцептируется. Что за чертовщина, думаю.

Немного почесав затылок, решил установить рекомендованый коллегой firebug. Гениальная, кстати, штука - рекомендую всем, и еще раз большое спасибо наводчику :-) Но самое главное, после этого было акцептировано мое последнее изменение!

И тут меня осенило: JS-code запоминается, скорее всего, в каком-то особом кэше браузера. Я давеча по инерции думал, что чищу все: и оба кэша от Typo3 , и браузер перезапускал - ничего не помогало. Теперь, кажется, понял, что сидит эта гадость где-то в укромном месте, и при определенных обстоятельставх очищается (напр. при перезапуске компа или, вероятно, при инсталяции новых расширений браузера).

Если моя гипотеза верна, то тогда мой последний вопрос к уважаемому сообществу:

Каким образом можно вручную очищать этот браузер-кэш в наиболее популярных браузерах (IE, Mozilla FIrefox etc.)?
Winston James вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB code is Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как добавить ссылку на внешний JavaScript? (:) Общие вопросы 2 19.04.2006 22:27


Часовой пояс GMT +4, время: 12:25.


Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot

Хостинг и техническая поддержка: TYPO3 Лаборатория