Javascript.RU

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

Связь активного пункта меню с iframe
Доброго времени суток! Очень необходим добрый совет мастеров JS.

делаю сайт, заготовка проблемного фрагмента здесь http://dadada1916.narod.ru/

А проблема в следующем, на странице имеется меню и <iframe> в котором отображаются страницы вызываемые из меню.

<!-- content -->
<div id="content">
<div id="top">
<h1>Reliable professional equipment for industry.</h1>
<p>From best industrial producers of Europe.</p>
</div>
<div id="left">
<div class="indent-left">
<h1>Products</h1>
</div>
<ul id="mainmenu" class="list-1">
<li><a href="Gearmotors.html" target="iframe"><span>Gearmotors</span></a></li>
<li><a href="ElectricalMotors.html" target="iframe"><span>Electrical motors</span></a></li>
<li><a href="ElectricDrives.html" target="iframe"><span>Electric Drives</span></a></li>
<li><a href="Accessories.html" target="iframe"><span>Accessories</span></a></li>
<li><a href="Gearboxes.html" target="iframe"><span>Gearboxes</span></a></li>
</ul>
</div>
<iframe src="products/Gearmotors.html" name="iframe" height="470" width="690"></iframe>
</div>

Необходимо сделать что-бы активному <li> меню присваивался class="alt-1"

Одним добрым человеком был предложен вариант добавления в каждую страницу следующего кода:
<script type="text/javascript">
window.onload = function(){
mm_items = window.opener.document.getElementById('mainmenu'). getElementsByTagName('LI'); //получаем элементы списка
for(var i=0; i<mm_items.length; i++){ //пробегаем по каждому пункту меню
mm_items[i].className = ''; //очищаем атрибут класса
if(mm_items[i].getElementsByTagName('A')[0].href == window.location.href) //сравниваем ссылку в пункте меню с адресом фрейма
mm_items[i].className = 'act-1'; //если ссылка и адрес совпали, значит, пункт меню активен.
}
}
</script>

но результата нет. Хотелось бы понять почему? Где ошибка? Если есть другой способ реализации этой задачи тоже было бы интересно его узнать.
Ответить с цитированием
  #2 (permalink)  
Старый 12.12.2010, 09:38
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от dadada1916
Если есть другой способ реализации этой задачи тоже было бы интересно его узнать.
Вариант 1.
- При выборе элемента списка - писать в куку егопорядковый номер
- При перерисовке страницы читать куку, присваивсть нужному элементу "активный" класс, обновлять ифрейм

Вариант 2.
Будет работать если есть серверный язык...
- Иметь на странице скрытую переменную
- В ней хранить номер активного эелемента
- При формировании страницы, реагировать на значение той переменной

Вариант 3.
Так же с серверным языком...
- Тот же алгоритм как и в.2, только номер хранится в сессии...
Ответить с цитированием
  #3 (permalink)  
Старый 13.12.2010, 02:03
Новичок на форуме
Отправить личное сообщение для dadada1916 Посмотреть профиль Найти все сообщения от dadada1916
 
Регистрация: 12.12.2010
Сообщений: 2

спасибо за дельные советы.

кстати одним добрым человеком было найдено решение:

window.opener возвращает ссылку на объект window, который сгенерировал текущее окно методом window.open(), в данном контексте window.opener не определен.
Нужно использовать top (окно верхнего уровня в браузере), т.е. должно быть так

mm_items = top.document.getElementById('mainmenu').getElement sByTagName('LI'); //получаем элементы списка

все заработало! спасибо всем добрым людям на свете!
Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
выделение активного пункта faith80 jQuery 3 04.08.2010 13:03
Событие onClick при нажатии пункта меню Lex4e Общие вопросы Javascript 1 25.06.2010 18:31
анимированное меню на jquery глючит в ie leCadavreExquis jQuery 3 30.12.2009 17:30
Как "переключать" картинки в меню навигации? KirTer Элементы интерфейса 1 22.06.2009 11:49
Меню. При открытии любого пункта сворачивались все остальные Drako Элементы интерфейса 6 13.08.2008 13:56