Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Как узнать куда ссылаеться ссылка  (Прочитано 11123 раз)
0 Пользователей и 3 Гостей смотрят эту тему.
Dracul
Помогающий

ru
Offline Offline
Пол: Мужской

« : 25-04-2006 19:42 » new

вот у меня какое дело, в скрипте необходимо узнать, куда именно ведет ссылка у гиперссылки, пытался узнать с помощью - document.getElementById('link').href но не работает... может надо как-нибудь по другому это делать?
« Последнее редактирование: 12-12-2007 15:18 от Алексей1153++ » Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 26-04-2006 03:51 » 

Dracul, во-первых, ссылка действительно имеет id="link"?
Во-вторых, использовать объекты можно только после их определения. Т.е. код, обращающийся к какому-либо объекту должен находится в тексте после объекта, либо вызываться после гарантированной загрузки объекта.

Это работать не будет:
Код:
<script type="text/javascript">
document.write(document.getElementById('link').href);
</script><br />
<a id="link" href="http://ya.ru">aaa</a>

А это будет:
Код:
<a id="link" href="http://ya.ru">aaa</a><br />
<script type="text/javascript">
document.write(document.getElementById('link').href);
</script>

Относительной гарантнией загруженности страницы будет обработка события onload для body или окна (фрейма).

И все же, для надежности и стабильности программы стоит сперва проверить существование объекта перед первым использованием.
Код:
<a id="link" href="http://ya.ru">aaa</a><br />
<script type="text/javascript">
if (document.getElementById('link'))
    document.write(document.getElementById('link').href);
else
    document.write('nothing');
</script>
« Последнее редактирование: 12-12-2007 15:18 от Алексей1153++ » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Dracul
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #2 : 26-04-2006 18:53 » 

нет... она имеет другой id... Улыбаюсь
а что id='link' нельзя использовать ?
« Последнее редактирование: 12-12-2007 15:19 от Алексей1153++ » Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 26-04-2006 20:47 » 

Можно ж) Я на всякий случай спросил ж)

Совет то помог или что не ладится?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Dracul
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #4 : 27-04-2006 19:05 » 

ага спасибо...
Улыбаюсь

а узнать, что стоит между <a> и </a> можно как-нибудь?
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 28-04-2006 04:05 » 

obj = getElementById('link');
if (obj.hasChildNodes())
  // дочки есть, но это может быть да же пробел или тег
Далее см. массив obj.childNodes

Еще можно проверять длину массива: obj.childNodes.length
« Последнее редактирование: 12-12-2007 15:20 от Алексей1153++ » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Dracul
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #6 : 02-05-2006 02:00 » 

а вот если у меня между <a> и </a> стоит текст, то как его выудить то...
я пробовал обращаться к
document.getElementById('link').childNodes[0]
он возвращает строку, что мол это объект, а вот как из этого объекста что то вытащить, ни как не пойму
« Последнее редактирование: 12-12-2007 15:21 от Алексей1153++ » Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #7 : 02-05-2006 04:01 » 

Dracul, а никто не обещал, что все будет просто.

Пример:

1. исходный код
Код:
<a href="http://ya.ru" id="link"><b>y</b>andex</a>

2. дерево
Код:
obj.nodeType =  1
obj.nodeName = 'a'
obj.childNodes[0].nodeType = 1
obj.childNodes[0].nodeName = 'b'
obj.childNodes[0].childNodes[0].nodeType = 3
obj.childNodes[0].childNodes[0].nodeValue = 'y'
obj.childNodes[1].nodeType = 3
obj.childNodes[1].nodeValue = 'andex'

Скачай себе Mozilla и поработай с их DOM Inspector. Это не очень удобный инструмент, но за то ты своими глазами увидишь что и как.
« Последнее редактирование: 12-12-2007 15:24 от Алексей1153++ » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines