Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.01.2014, 21:07
Интересующийся
Отправить личное сообщение для totalavitaminoz Посмотреть профиль Найти все сообщения от totalavitaminoz
 
Регистрация: 06.01.2014
Сообщений: 23

Не срабатывает getElementById
Только-только начал изучать js, не бейте сильно.

В примере на странице - http://javascript.ru/tutorial/dom/search - дан код, меняющий ссылку на синию.
На этой же странице я нахожу элемент navbar-row, подставляю его вместо элемента в примере, консоль в хроме отдаёт значение подставляемого цвета, но на странице цвет текста не меняется.
Вместо параметра color подставляю padding, измнения на странице происходят.
Что я делаю не так?

Дальше. Беру работающий код с паддингом, подключаю его через site preference в опере, но обработчик выдаёт ошибку
User Javascript thread
Uncaught exception: TypeError: Cannot convert 'document.getElementById('navbar-row')' to object
Error thrown at line 1, column 0 in autogod.js:
    document.getElementById('navbar-row').style.padding = '20px';


Такая же ерунда с greasemonkey в файрфоксе.
Объясните, почему?

Последний раз редактировалось totalavitaminoz, 06.01.2014 в 21:23.
Ответить с цитированием
  #2 (permalink)  
Старый 06.01.2014, 21:20
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

Сообщение от totalavitaminoz
В примере на странице - http://learn.javascript.ru/dom/search - дан код,
Цитата:
Страница "/dom/search" не найдена..
Ответить с цитированием
  #3 (permalink)  
Старый 06.01.2014, 21:24
Интересующийся
Отправить личное сообщение для totalavitaminoz Посмотреть профиль Найти все сообщения от totalavitaminoz
 
Регистрация: 06.01.2014
Сообщений: 23

Сообщение от рони Посмотреть сообщение
Извиняюсь, не ту ссылку вставил. Исправил.
Ответить с цитированием
  #4 (permalink)  
Старый 06.01.2014, 21:51
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Цитата:
На этой же странице я нахожу элемент navbar-row, подставляю его вместо элемента в примере, консоль в хроме отдаёт значение подставляемого цвета, но на странице цвет текста не меняется.
Ну да, ты цвет текста внутри div'а c id navbar-row исправил. Все работает. Вот только во всех ссылках внутри этого элемента прописан свой собственный цвет, который, естественно, перекрывает цвет родительского элемента. Потому и не видно изменений.
Попробуй теперь набрать в консоли следующее:
document.getElementById('navbar-row').innerHTML += "mytext";

То есть, добавить в div голый текст. Его цвет будет изменен.

Последний раз редактировалось Erolast, 06.01.2014 в 22:05.
Ответить с цитированием
  #5 (permalink)  
Старый 07.01.2014, 10:46
Интересующийся
Отправить личное сообщение для totalavitaminoz Посмотреть профиль Найти все сообщения от totalavitaminoz
 
Регистрация: 06.01.2014
Сообщений: 23

Точно, об этом совсем забыл. Спасибо.
А почему может не работать подключаемый скрипт, хотя через консоль всё получается?
Ответить с цитированием
  #6 (permalink)  
Старый 07.01.2014, 12:54
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от totalavitaminoz Посмотреть сообщение
Точно, об этом совсем забыл. Спасибо.
А почему может не работать подключаемый скрипт, хотя через консоль всё получается?
возможно, подключаешь в <head>. Если это так, то на момент работы скрипта элемента еще нет (ну не обработалось ещё HTML дерево)

самый легкий вариант решения проблемы - подключать <script> перед закрывающим тегом body (</body>)
Ответить с цитированием
  #7 (permalink)  
Старый 07.01.2014, 13:20
Интересующийся
Отправить личное сообщение для totalavitaminoz Посмотреть профиль Найти все сообщения от totalavitaminoz
 
Регистрация: 06.01.2014
Сообщений: 23

Сообщение от melky Посмотреть сообщение
возможно, подключаешь в <head>. Если это так, то на момент работы скрипта элемента еще нет (ну не обработалось ещё HTML дерево)

самый легкий вариант решения проблемы - подключать <script> перед закрывающим тегом body (</body>)
Я подключаю его как внешний скрипт через настройки браузера.
http://www.opera.com/docs/userjs/using/#writingscripts.

Например, вот:
// ==UserScript==
// @name          test yandex
// @description   test yandex
// @include       [url]http://yandex.ru*[/url]
// ==/UserScript==

music = document.getElementById('tab-music').innerHTML; alert (music);


upd
Понял свою ошибку, забыл прописать условие для адреса с www

Последний раз редактировалось totalavitaminoz, 07.01.2014 в 13:30.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
onclick срабатывает со 2 раза в ie djonA Общие вопросы Javascript 19 25.03.2013 01:07
Срабатывает нажатие на button при нажатии Enter внутри input rebeled Элементы интерфейса 19 07.02.2013 16:07
AJAX запрос в Internet Explorer срабатывает через раз nikolayseo jQuery 5 13.11.2012 00:13
Нажатие по дате в календаре срабатывает только со второго клика afr0 Events/DOM/Window 4 31.10.2012 13:39
Не срабатывает при отсутствии в теле документа yuriii jQuery 3 06.05.2010 17:45