Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community |
31.08.2007, 23:37 | #1 |
Новенький
Регистрация: 28.05.2005
Адрес: Stuttgart
Сообщений: 29
|
Почему могут не работать относительные ссылки на внешний 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ами и установил, что эти файлы фактически не подключаются. Я переставил скрипты в местную директорию (там, где сидит активный модуль) и убрал соответствующие префиксы перед названиями файлов. В этом варианте происходит обращение к скриптам, алерты выпрыгивают, где надо, и можно нормально искать ошибки. Относительные пути в указаном фрагменте вычисляются правильно (я проверял), поэтому я не понимаю, почему же нет обращения к этим файлам. Очистки кэша, перезапуск браузеров и т. д. не помогают... Может быть кто-то уже сталкивался с подобной непоняткой? |
01.09.2007, 21:34 | #3 |
Новенький
Регистрация: 28.05.2005
Адрес: Stuttgart
Сообщений: 29
|
Вызов внешних скриптов через относительные пути
Так речь и идет о бэкенде (sorry, что сразу не написал)!
Именно в бэкенде расширения Direct Mail я пытаюсь сделать специальную выборку (special query). Так вроде бы не было никаких проблем, но вот захотелось мне проверять поля с датой (напр. Старт и Стоп - чтобы загодя отсылать мэйлы с предупреждениями). Так вот: изменения даты у меня не воспринимаются. Стал я копать глубже и докопался, что это-то и должно происходить в подключаемых внешних скриптах (только для полей сконфигурированных в TCA как date - в остальных случаях эти файлы не подключаются - видимо поэтому никто и не обращает на них внимания). Когда я, как уже писал выше, перенес эти файлы непосредственно в директорию ..\mod\ этого расширения и убрал пути из приведенного выше фрагмента, мне удалось попасть "внутрь" скриптов и найти причину странной обработки даты. Там, в скрипте должно происходить изменение скрытого числового поля формы в соответствие с введенной в видимом поле датой. Но для обращения к полям формы необходимо обращаться к форме по имени, а про имя-то как раз и забыли: обращения происходит к пустому месту: [][ИмяПоля][Значение]. Естественно - ничего не выходит. Короче, я ошибку в исходниках устранил (может быть и не очень элегантно, но все заработало), но когда я возвратился к оригинальному варианту вызова внешних скриптов, то все осталось по-прежнему: их как бы не существует с точки зрения модуля, как будто бы их и не вызывали! Причина врядли кроется в синтаксисе приведенного фрагмента. Я проверял: пути типа ../../../../typo3 вычисляютя верно. Но что же тогда? Никак не въеду - наверное я тупой... За наводку на firebug - спасибо, обязательно попробую. |
02.09.2007, 01:37 | #4 |
Новенький
Регистрация: 28.05.2005
Адрес: Stuttgart
Сообщений: 29
|
Я, кажется, понял...
Сегодня включил комп, стартанул мой Typo3, вышел на старое место, и - о чудо! - все заработало! Уже тысячи раз происходило со мной подобное, и происходит каждый день с миллионами других, а все не перестаю удивляться...
Я тогда снова делаю незначительное изменение в скрипте - и оно опять не акцептируется. Что за чертовщина, думаю. Немного почесав затылок, решил установить рекомендованый коллегой firebug. Гениальная, кстати, штука - рекомендую всем, и еще раз большое спасибо наводчику :-) Но самое главное, после этого было акцептировано мое последнее изменение! И тут меня осенило: JS-code запоминается, скорее всего, в каком-то особом кэше браузера. Я давеча по инерции думал, что чищу все: и оба кэша от Typo3 , и браузер перезапускал - ничего не помогало. Теперь, кажется, понял, что сидит эта гадость где-то в укромном месте, и при определенных обстоятельставх очищается (напр. при перезапуске компа или, вероятно, при инсталяции новых расширений браузера). Если моя гипотеза верна, то тогда мой последний вопрос к уважаемому сообществу: Каким образом можно вручную очищать этот браузер-кэш в наиболее популярных браузерах (IE, Mozilla FIrefox etc.)? |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как добавить ссылку на внешний JavaScript? | (:) | Общие вопросы | 2 | 19.04.2006 22:27 |