![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| Ober |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 82 Регистрация: 11.3.2011 Репутация: нет Всего: нет |
Подскажите пожалуйста в чем проблемма, необходимо чтобы при вызове функции "addCSS()" на текущей странице устанавливался стиль находящийся в css/main.css но нижеприведенный код не работает.
вот сам вызов функции:
При вызове выбивает ошибку, о том что "head" не поддерживает функцию "appendChild". |
||||
|
|||||
| Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 17 Всего: 137 |
getElementsByTagName - возвращает коллекцию элементов, поэтому нужно обращаться к первому.
|
|||
|
||||
| нуп |
|
|||
|
Ботокодер ![]() ![]() Профиль Группа: Участник Сообщений: 987 Регистрация: 22.6.2009 Где: Кременчуг Репутация: 12 Всего: 33 |
getElementsByTagName возвращает массив, первый элемент которого вам и нужен
|
|||
|
||||
| Ober |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 82 Регистрация: 11.3.2011 Репутация: нет Всего: нет |
Спасибо, эта ошибка ушла, но появилась новая "Значением свойства addCSS или является NULL или оно не определено, или не является объектом function". |
||||
|
|||||
| Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 17 Всего: 137 |
Если пишет addCSS is not a function(), то это значит, что скрипт не видит функцию. Выложите целиком код.
пруфлинк на рабочую версию |
|||
|
||||
| Ober |
|
||||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 82 Регистрация: 11.3.2011 Репутация: нет Всего: нет |
Вот часть основного кода я убрал записи не имеющие отношения к скрипту:
Содержимое файла my.js
содержание файла main.css
|
||||||||
|
|||||||||
| Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 17 Всего: 137 |
Действие по умолчанию для клика по ссылке - переход по заданному url. В вашем же случае, вы хотите это действие подменить вставкой файла стилей. Но чтобы действие по умолчанию не выполнилось, нужно в функции-обработчике вызвать метод preventDefault() у объекта типа Event. Если хотите об этом подробнее, то читать можно здесь. Есть более короткий, но менее правильный вариант, который указал вам я по ссылке в посту выше - поставить в качестве url знак #, таким образом перезагрузки страницы не будет и результат функции обработчика вы увидите.
Возможно проблема в этом, что у вас идет переход на указанный в ссылке url (а пустой url = текущему) из-за этого не работает. Попробуйте вставить решетку и посмотрим что выходит. Далее, если не сработает, возможно файл скрипта не виден из документа? Уверены в обратном? Можно проверить подставив alert перед определением функции скажем. Пробовали открывать мою ссылку? Работает? И ещё, приучайтесь сразу писать код в нижнем регистре ;) |
|||
|
||||
| Ober |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 82 Регистрация: 11.3.2011 Репутация: нет Всего: нет |
Да, в вашей ссылке все работает. Я тоже думаю, что он не видит скрипт. Сейчас буду что-то исправлять. Хотя при подстановке alert(); она выполняется. Но теперь пишет о том, что "Не удалось получить значение свойства appendChild" Это сообщение отредактировал(а) Ober - 1.10.2012, 18:10 |
|||
|
||||
| Ober |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 82 Регистрация: 11.3.2011 Репутация: нет Всего: нет |
Решилось. Все таки нужно было делать так:
|
|||
|
||||
| Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 17 Всего: 137 |
все-таки нужно делать как сказал я, просто в моем примере по ссылке обращение к первому элементу массива идет при объявлении переменной, а в примере в посту при обращении. Видимо вы копировали часть от туда, часть от туда, не удалив нужные элементы. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |