Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 14.12.2011
Сообщений: 120
1

Javascript подключается везде, но не везде работает

25.03.2015, 18:31. Показов 2704. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте.
В общем, происходит что-то странное. Есть простенький файл JS, который я подключаю в файле heading.php с помощью тега <script type="text/javascript" src="/ticket_monitor.js"></script>'
В свою очередь файл heading.php инклудится на всех страницах личного кабинета пользователя в том числе на главной странице кабинета index.php.
Этот JS файл просто выводит алерт. По простой логике получается, что на всех страницах кабинета пользователя должен выводиться этот самый алерт.
Но алерт работает только на главной странице кабинета index.php. Если перейти на любую страницу личного кабинета, алерт не выводится... В чём тут дело, я не пойму. Исходный код HTML страниц смотрел через браузер - везде JS-файл ticket_monitor.js подключается корректно. Браузеры разные пробовал.

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
SetInterval('monitor();', 9000);
var fla1;
var fla3;
function monitor(){//////////////////////
 
                $.ajax({
                type: "POST",
                url: "/ticket/tickets.php",
        async:true,
                data: {date:587}
                }).done(function(html) {
                var res = $.parseJSON(html);
                window.fla1=res.fla1;
                window.fla3=res.fla3;
                });     
 alert('WORK')
;}
.
Почему?

И ещё что-то непонятное. Иногда алерт перестаёт выскакивать и перестаёт вообще реагировать на изменения в исходном коде. Помогает только полная очистка истории браузера. Простая перезагрузка страницы без кэша F5 не помогает.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.03.2015, 18:31
Ответы с готовыми решениями:

Контроль ввода. Работает везде даже в IE но в мозиле на работает
Сделал контроль ввода что бы в поле нельзя было ввести ни чего кроме цифр и бакспейса, канает во...

status не работает в гуглхроме и мозиле и везде кроме ИЕ
Не работает при наведении на ссылу мышкой во всех браузерах кроме Ие, данная функция, что можно...

Не везде работает openGL
Пишу я прогу с использованием наследника QOpenGLWidget. На моём компе и некоторых других она...

Сессия не везде работает
Есть два файла index.php session_start(); $_SESSION=10; и users.php session_start(); echo...

9
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,625
25.03.2015, 18:46 2
у вас синтаксическая ошибка - неверен регистр первой буквы метода setInterval ()

по идее браузер, встретив ошибку синтаксиса, должен остановить исполнение дальнейшего js-кода, поэтому вообще-то очень странно, что где-то у вас alert () всё-таки "выскакивает" - такого быть не должно
1
0 / 0 / 0
Регистрация: 14.12.2011
Сообщений: 120
25.03.2015, 18:48  [ТС] 3
Добавлено через 1 минуту
Цитата Сообщение от kalabuni Посмотреть сообщение
у вас синтаксическая ошибка - неверен регистр первой буквы метода setInterval ()
по идее браузер, встретив ошибку синтаксиса, должен остановить исполнение дальнейшего js-кода, поэтому вообще-то очень странно, что где-то у вас alert () всё-таки "выскакивает" - такого быть не должно
Это я здесь на форуме в редакторе допустил ошибку когда писал пост, в реальном исходном коде такой ошибки нет.


ЗЫ:Библиотека jQuery тоже подключается в heading.php, так что дело не в ней.
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,625
25.03.2015, 19:07 4
Цитата Сообщение от Никита-2012 Посмотреть сообщение
Библиотека jQuery тоже подключается в heading.php, так что дело не в ней.
она должна подключаться раньше вашего скрипта, вы об этом в курсе?

а что написано в консоли ошибок браузера, смотрели?
1
0 / 0 / 0
Регистрация: 14.12.2011
Сообщений: 120
25.03.2015, 19:14  [ТС] 5
Цитата Сообщение от kalabuni Посмотреть сообщение
она должна подключаться раньше вашего скрипта, вы об этом в курсе?
а что написано в консоли ошибок браузера, смотрели?
kalabuni, да, разумеется я сначала подключил библиотеку и лишь затем свой скрипт.
В консоли посмотрел, написано TypeError: $.ajax(...).done is not a function
Причём на главной странице index.php такой ошибки нет.
Что это за зверь такой и как с ним бороться?
0
279 / 279 / 62
Регистрация: 28.08.2014
Сообщений: 432
25.03.2015, 19:23 6
Может, абсолютные пути прописать до tickets.php и до ticket_monitor.js?

Если в ticket_monitor.js всё убрать, оставить только alert('WORK'), что будет?
1
0 / 0 / 0
Регистрация: 14.12.2011
Сообщений: 120
25.03.2015, 19:51  [ТС] 7
Цитата Сообщение от ludmila-sv Посмотреть сообщение
Может, абсолютные пути прописать до tickets.php и до ticket_monitor.js?
Если в ticket_monitor.js всё убрать, оставить только alert('WORK'), что будет?
kalabuni мне уже помог понять что дело в аякс-запросе. Если убрать всё и оставить только алерт, то тогда всё работает на всех страницах.

Осталось понять, что это за ошибка TypeError: $.ajax(...).done is not a function
В гугле практически нет по ней информации, а в яваскрипте я слабо разбираюсь.
Значит, для index.php она является функцией, а для других страниц нет. Что за фигня?


Добавлено через 12 минут
После изменения async c true на false стало работать, но только в хроме, а в файрфоксе всё та же ошибка TypeError: $.ajax(...).done is not a function

Подскажите. плиз, как это исправить?
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,625
25.03.2015, 20:13 8
Лучший ответ Сообщение было отмечено Никита-2012 как решение

Решение

Цитата Сообщение от Никита-2012 Посмотреть сообщение
ошибка TypeError: $.ajax(...).done is not a function
говорит, вероятнее всего, о том, что jquery не подключается почему-то

проверьте -- уберите подключение библиотеки, запустите, загляните в консоль - если ошибка та же, значит, моё предположение верно
1
279 / 279 / 62
Регистрация: 28.08.2014
Сообщений: 432
25.03.2015, 20:16 9
Лучший ответ Сообщение было отмечено Никита-2012 как решение

Решение

Как вариант, уберите $.ajax(...), поставьте какую-нибудь функцию jQuery. Если будет опять ругаться, значит, дело в подключении jQuery.

Или, может, в версии jQuery. Поставьте новейшую.
1
0 / 0 / 0
Регистрация: 14.12.2011
Сообщений: 120
26.03.2015, 00:46  [ТС] 10
Всё, спасибо всем, проблему решил.
0
26.03.2015, 00:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.03.2015, 00:46
Помогаю со студенческими работами здесь

Плагин работает везде, кроме IE
Добрый день, подскажите пожалуйста как исправить ошибку. Есть плагин для создания ЛК называется...

Ноутбук работает только с Wi Fi роутера дома, в кафе не работает и везде. Почему?
Подскажите пожалуйста, почему у меня ноутбук с виндой 7, работает вай фай только дома с роутера. А...

Не работает submit везде кроме Chrome =(
Ребят выручайте срочно))) Есть ссылка к примеру &quot;купить&quot;, при нажатии на нее открывается файл...

Проблемы с распространением приложения. Программа работает не везде
Программа написана с использованием Windows Forms и ado.net для доступе к БД. Т.к. она...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru