| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > Скрипт работает не на всех сайтах |
| Автор: BeeMaster 21.5.2012, 05:41 |
| Всем добрый день, ну или утро/вечер. Проблема такая: Есть некий сайт http://statlog.org/ Там справа внизу есть картинка где написано "Обратная связь" Если её нажать, то появляется всплывающее окно обратной связи. На удалённом сервере, например http://indicator.name/test.php Эта кнопка так-же работает. А вот на этом сайте она не работает http://lifehost.org/ Я вчера весь день потратил в попытках разобраться в чём дело, менял названия скриптов, думал что где-то есть функции в скрипте которые ранее использовались, менял названия функций в скрипте. В итоге всё равно на этом сайте ява скрипт не выполняется, всплывающее окошко не появляется. Очень прошу помочь разобраться в чём дело, или подсказать причину проблемы. P/S/ Если повесить эту кнопку на сайт без контента, работает. Сделал вывод что виноват контент, но так и не понял что именно и почему |
| Автор: BeeMaster 21.5.2012, 06:21 | ||
Сам скрипт
Думал что может быть ранее другие скрипты используют такие ID, но как выяснилось дело не в этом. Уже не знаю на что думать |
| Автор: BeeMaster 21.5.2012, 07:46 |
| Вот что удалось узнать, если убрать из кода сайта где не работает скрипт это http://lifehost.org/engine/classes/js/jquery.js То всё начинает работать. Всё равно не могу понять как этот скрипт влияет на мой и почему |
| Автор: EnergyMarauder 21.5.2012, 08:57 |
| На http://lifehost.org/ у меня работает. |
| Автор: BeeMaster 21.5.2012, 09:19 | ||
Конечно, я для тестов убрал этот скрипт. Как возвращаю, не работает. В чём может быть дело? Вот сейчас верну Вернул. Смотри, не работает. Скрипт принадлежит ДЛЕ, не понимаю как он влияет на мой скрипт |
| Автор: Aliance 21.5.2012, 09:37 |
| У меня тоже работает все. |
| Автор: BeeMaster 21.5.2012, 09:42 |
| То есть ты зашел на http://lifehost.org, внизу нажал на кнопку Обратная связь и у тебя форма появилась? Странно. Я проверял в браузерах Опера и firefox. Какой у тебя? У меня начинает работать если я удаляю скрипт /engine/classes/js/jquery.js, а с ним не пашет Только что проверил в сафари, тоже не пашет пока не уберу этот скрипт Добавлено через 6 минут и 6 секунд Прошу посмотреть скрипт http://lifehost.org/engine/classes/js/jquery.js что в нём такого моет быть из-зачего другой ява скрипт может не работать? |
| Автор: EnergyMarauder 21.5.2012, 11:11 |
| Попробуй поместить всё содержимое скрипта всплывающего окна в jQuery(function(){ сюда }); . |
| Автор: BeeMaster 21.5.2012, 17:02 | ||
Как правильно это сделать? Вот сам код всплывающего окна
Он подгружает одну ксс и 2 файла со скриптом. Что именно поместить в jQuery(function(){ сюда }); и куда эт вставить. |
| Автор: BeeMaster 21.5.2012, 17:43 |
| Если все ксс и скрипты засунуть в 1 файл, есть вероятность что проблема решится? Ещё момент, для работы скрипта мне нужно убрать все переносы строк. Если у ява скрипте убрать переносы, работать будет? |
| Автор: EnergyMarauder 21.5.2012, 17:57 |
| Дело в том, что "dialog111.js" -- это библиотека MooTools, а "Prompt111.js" -- это конкретно тот скрипт, который отвечает за всплывающую область. Также, как я понял, у тебя подключена библиотека jQuery. MooTools и jQuery конфликтуют между собой. Чтобы они не конфликтовали нужно либо удалить jQuery, если он не нужен, либо воспользовать, к примеру, вот этим советом: http://htmlmagic.ru/web-gury/ajax/jqwithmoot.html . Ну или переписать скрипт для jQuery. Решай сам. |
| Автор: BeeMaster 21.5.2012, 18:12 |
| jQuery мой скрипт не использует. А вот на сайте куда я хочу добавить окно он используется. Вероятно по этому и есть конфликт. Прошу чуть подробнее пояснить порядок действий, чтобы всплывающее окно на MooTools заработало на сайте где используется jQuery |
| Автор: EnergyMarauder 21.5.2012, 18:22 |
| Почитайте ссылки, которые Гугл выдаст по запросу "конфликт jQuery и MooTools", там всё подробно сказано. Делайте так, как там сказано. |
| Автор: BeeMaster 21.5.2012, 20:10 |
| Если добавить jQuery.noConflict(); то jQuery перестаёт работать, а всплывающее окошко начинает работать, в чём дело? |
| Автор: EnergyMarauder 21.5.2012, 20:40 |
| Теперь везде, где используется знак доллара в jQuery-коде этот знак нужно поменять на jQuery, там же написано. |
| Автор: BeeMaster 21.5.2012, 21:16 |
| ой, невнимательность, я в коде всплывающего окна поменял. По задумке эту форму обратной связи будут устанавливать себе на сайт разные админы. И уж они точно не будут править свои скрипты. Так что нужно ограничиться модификациями моего скрипта. Похожу придётся отказаться от Mootools |
| Автор: EnergyMarauder 22.5.2012, 04:47 |
| Да, проще переписать на jQuery, если везде в другом месте используется только jQuery. |
| Автор: BeeMaster 22.5.2012, 05:37 |
| А возможен ли такой вариант: Скрипт проверит подключена ли jQuery, если да, то выполнит скрипт на jQuery, если нет, то подключит Mootools, и уже для него выполнит? Как выполнить проверку? |
| Автор: BeeMaster 22.5.2012, 07:12 |
| Переписал на jQuery, работает, но есть сайты которые не используют ранее jQuery. Вопрос, как определить загружена ли уже jQuery или нет? |
| Автор: BeeMaster 22.5.2012, 07:28 |
| Вопрос снят, добавил в библиотеку кода if(!window.jQuery){ Тут библиотека } Всё заработало как надо, всем спасибо |
| Автор: EnergyMarauder 22.5.2012, 07:59 |
| Ну да, главное понять в чём проблема, а ответы и в Гугле можно найти. |
| Автор: BeeMaster 22.5.2012, 08:28 |
| Это точно. Правильно сформулированный запрос - половина ответа |