this.blur не дружит с выпадающим меню

musicant

Новичок
this.blur не дружит с выпадающим меню

Добрый день.

Есть такой скрипт для удаления пунктирного прямоугольника вокруг ссылок-

function c(){
if(this.blur)this.blur();
}
function d(){
e=document.getElementsByTagName("a");
for(i=0;i<e.length;i++){
e.onfocus=c;
}
}

И такой скрипт для выпадающего меню (нужен только для ИЕ, остальные понимают :hover как надо)-

dropmenu = function() {
if (document.all&&document.getElementById) {
navRoot = document.getElementById("menubar");
for (i=0; i<navRoot.childNodes.length; i++) {
node = navRoot.childNodes;
if (node.nodeName=="LI") {
node.onmouseover=function() {
this.className+=" over";
}
node.onmouseout=function() {
this.className=this.className.replace(" over", "");
}
}
}
}
}

Если закончить скрипт сторочками:
window.onload=d;
window.onload=dropmenu;
Тогда в IE 7 и IE 6 все работает, но в FF не пропадают пунктирные рамки.

Если поменять строчки местами:
window.onload=dropmenu;
window.onload=d;
Тогда в IE 7 и IE 6 перестает "выпадать" меню, а в FF все как надо.



Подскажите пожалуйста, есть ли универсальное решение проблемы?
 
что за пунктирный прямоугольник? и почему это нельзя сделать средствами css?
 
Пунктирный прямоугольник появляется вокруг ссылок при Клике мышкой (наблюдается везде, кроме Opera и IE7).

Если Вы знаете решение в моей ситуации - поделитесь.
 
Автор оригинала: musicant
Если Вы знаете решение в моей ситуации - поделитесь.
я незнаю решение твоей проблемы, но я знаю как делать выпадающее меню, где нет таких проблем - http://beholder-eye.info/2006/03/30/dropdown-menu-css (как вариант), поэтому я и спросил про css.
 
@ndrey
Вы могли бы хоть бегло изучить мой код.
Это тоже самое, что и ваше меню, лишь с небольшими вариациями! (я читал ее на AlistApart)
 
Автор оригинала: musicant
@ndrey
Это тоже самое, что и ваше меню, лишь с небольшими вариациями! (я читал ее на AlistApart)
?? видимо плохо:), там достаточно хорошо описано все и при реализации такого меню у меня не возникло указанных проблем. мне так же непонятен этот излишний js код, может меню особенное? весь js для такого меню предназначен только для ie по сути...
 
Автор оригинала: @ndrey
при реализации такого меню у меня не возникло указанных проблем
Вы пытались совместить код меню с кодом, "убивающим" пунктир вокруг ссылок? сомневаюсь...

Проблема НЕ В МЕНЮ а во ВЗАИМОДЕЙСТВИИ ДВУХ СКРИПТОВ.
Если вы не знаете ответа, зачем флудить?
 
я имел ввиду пунктирный прямоугольник вокруг ссылок в МЕНЮ, поэтому мне было непонятно...сорри
 
musicant
если проблема именно с blur, то проверь, на что указывает this в ф-ии c(). у меня подозрение, что на window, а не на элемент, но могу и ошибиться
 
Так ведь ф-ия с() вызывается через несколько строк в ф-ии d() к переменной e:

...
e=document.getElementsByTagName("a");
for(i=0;i<e.length;i++){
e.onfocus=c;
...

Blur не отключается в Firefox, если сначала вызвать ф-ию d() а потом dropmenu.
Если вызывать в обратной последовательности, то вырубается меню в IE.

Есть вариант прописать onfocus в теге каждой ссылки и убрать функции с() и d().
Это наверное будет работать, но не хочу портить код...
 
Сверху