русский
Germany.ruForen → Архив Досок→ Programmierung

Firefox Javascript

138  
Herzog постоялец07.12.06 15:15
Herzog
NEW 07.12.06 15:15 
Да, люблю я эти соревнования Билла со всем миром...
Есть Javascript
function fnGetTags(event){
var oWorkItem=event.srcElement;
var aReturn=oWorkItem.parentElement.getElementsByTagName('span');
if(aReturn.length >= 0){
for (i=0;i<aReturn.length;i++){
var vClassName = aReturn.getAttribute('className');
if(vClassName == "MsgError"){
status="ERROR on the site";
break;
}
}
}
}
Прекрасно работает IE.
В Firefox в Javascript-Консоле получаю сообщение об ошибке "oWorkItem has no properties". И все - скрипт обрываеться в указаной строке.
Как эту каку обмануть???
#1 
  scorpi_ nobody07.12.06 15:33
NEW 07.12.06 15:33 
in Antwort Herzog 07.12.06 15:15
RTFM. srcElement это чисто биллино изобретение. Так как я сегодня добрый, даю даже адреса где ртфмить - http://developer.mozilla.org/en/docs/DOM:event
http://www.quirksmode.org/js/introevents.html
http://www.w3.org/TR/DOM-Level-2-Events/
#2 
Simple Nothing is f*cked07.12.06 15:34
Simple
NEW 07.12.06 15:34 
in Antwort Herzog 07.12.06 15:15
Вместо srcElement используй target.
Форматируй код тэгом [пре].
#3 
Herzog постоялец07.12.06 15:44
Herzog
NEW 07.12.06 15:44 
in Antwort Simple 07.12.06 15:34
Если все такие добрые сегодня , че трудно строчку исправить на правильную?
Всем спасибо!
#4 
Herzog постоялец07.12.06 15:51
Herzog
07.12.06 15:51 
in Antwort Simple 07.12.06 15:34
Использовал.
var oWorkItem=event.target;
Теперь получаю: "oWorkItem.parentElement has no properties".
#5 
  scorpi_ nobody07.12.06 16:05
NEW 07.12.06 16:05 
in Antwort Herzog 07.12.06 15:51, Zuletzt geändert 07.12.06 16:12 (scorpi_)
Тебе наверно currentTarget нужен.
PS Тебе не кажется, что эта строчка if(aReturn.length >= 0) излишня?
#6 
Herzog постоялец07.12.06 16:15
Herzog
NEW 07.12.06 16:15 
in Antwort scorpi_ 07.12.06 16:05, Zuletzt geändert 07.12.06 16:17 (Herzog)
Изменил строки на
var oWorkItem=event.target;
var aReturn=oWorkItem.parentNode.getElementsByTagName('span');
до строки
var vClassName = aReturn.getAttribute('className'); (после aReturn в квадратных скобках i - перекодировщик (germany.ru) это не показывает)
все работает (в Firefox)
Елементов в списке aReturn 1 (aReturn.length = 1)
а вот строка var vClassName = aReturn.getAttribute('className'); дает null.
Строка if(aReturn.length >= 0) нужна, а если список пуст?
#7 
Herzog постоялец07.12.06 16:21
Herzog
NEW 07.12.06 16:21 
in Antwort Herzog 07.12.06 16:15
Все работает - вместо className в Firefox нужно писать class.
Да такие повороты не для моей лошади!
#8 
  scorpi_ nobody07.12.06 16:28
NEW 07.12.06 16:28 
in Antwort Herzog 07.12.06 16:21
В ответ на:
вместо className в Firefox нужно писать class.

Можно просто писать aReturn.className.
В ответ на:
Строка if(aReturn.length >= 0) нужна, а если список пуст?

Тогда мы в цикл не зайдём, только и всего.
#9 
Simple Nothing is f*cked07.12.06 17:05
Simple
NEW 07.12.06 17:05 
in Antwort Herzog 07.12.06 15:44
Я не говорил, что я добрый. Я очень даже злой :-D
#10 
Herzog постоялец07.12.06 17:11
Herzog
NEW 07.12.06 17:11 
in Antwort Simple 07.12.06 17:05
В ответ на:
Так как я сегодня добрый, даю даже адреса где ртфмить

Значит я это все сам придумал
#11 
Simple Nothing is f*cked08.12.06 10:26
Simple
NEW 08.12.06 10:26 
in Antwort Herzog 07.12.06 17:11
Это не моя цитата.
#12