imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Веб-мастеру > Веб-программирование
Опции темы
Старый 18.01.2005, 15:33     # 1
V0iD
Junior Member
 
Аватар для V0iD
 
Регистрация: 01.06.2003
Адрес: Msk
Пол: Male
Сообщения: 138

V0iD Путь к славе только начался
JScript и JavaScript

Проблема совместимости...
Есть код на JScript:
Код:
<script language="JavaScript">
function Toggle(node) {
 if (node.nextSibling.style.display == 'none') {
  if (node.children.length > 0)	{
   if (node.children.item(0).tagName == "IMG") {
    node.children.item(0).src = "minus.gif";
   }
   if (node.children.item(1).tagName == "IMG") {
    node.children.item(1).src = "folderopen.gif";
   }
  }
  node.nextSibling.style.display = '';
 }
 else {
  if (node.children.length > 0) {
   if (node.children.item(0).tagName == "IMG") {
    node.children.item(0).src = "plus.gif";
   }
   if (node.children.item(1).tagName == "IMG") {
    node.children.item(1).src = "folderclose.gif";
   }
  }
  node.nextSibling.style.display = 'none';
 }
}
</script>
Скрипт для организации дерева категорий.
Встраивается вот в такие конструкции:
Код:
<span onClick="Toggle(this)"><img src="plus.gif">
<img src="folderclose.gif">имя</span>
<span style="display: none;">содержимое</span>
В интерпретации JScript работает, т.е. при клике на имя или иконки - открывает содержимое и меняет иконки. Но в интерпретации JavaScript (Netscape, Mozilla) не работает .
Есть идеи почему?
__________________
Завтра будет.
Лучше.
V0iD вне форума  
Старый 18.01.2005, 16:56     # 2
RaZEr
МОД-Оператор ЭВМ
 
Аватар для RaZEr
 
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343

RaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех Гуру
Цитата:
Есть идеи почему
Так посмотри что за ошибка. Проблема то в чем...

PS: Возможно не катит item, т.к. в dom принято использовать childNodes. Аналогично tagName=nodeName.
RaZEr вне форума  
Старый 19.01.2005, 15:00     # 3
V0iD
Junior Member
 
Аватар для V0iD
 
Регистрация: 01.06.2003
Адрес: Msk
Пол: Male
Сообщения: 138

V0iD Путь к славе только начался
В том то и дело, что молчит как партизан. Попробовал поменять item(..)=childNodes(..) и tagName=nodeName - не вышло...

btw, есть ли хорошая статья по совместимости браузеров? А то на сайте не только jscript не работает, есть различия в css обработке...
__________________
Завтра будет.
Лучше.
V0iD вне форума  
Старый 19.01.2005, 15:43     # 4
Sheryld
Full Member
 
Регистрация: 29.05.2002
Сообщения: 544

Sheryld Луч света в тёмном царствеSheryld Луч света в тёмном царствеSheryld Луч света в тёмном царствеSheryld Луч света в тёмном царствеSheryld Луч света в тёмном царстве
в mozilla есть превосходный отладчик и dom инспектор.

а статьи: w3c.org или msdn(ежели по IE).

dom-2 core reference: http://www.w3.org/TR/2000/REC-DOM-Le...1113/core.html
__________________
убрано по просьбе администратора

Последний раз редактировалось Sheryld; 19.01.2005 в 16:00.
Sheryld вне форума  
Старый 19.01.2005, 16:14     # 5
RaZEr
МОД-Оператор ЭВМ
 
Аватар для RaZEr
 
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343

RaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех Гуру
Цитата:
В том то и дело, что молчит как партизан
Сам он ничего и не должен говорить. Для этого есть JavaScript console.

Цитата:
В том то и дело, что молчит как партизан. Попробовал поменять item(..)=childNodes(..)
childNodes это массив. Научись пользоваться мануалом.

Цитата:
есть ли хорошая статья по совместимости браузеров
http://www.quirksmode.org/dom/contents.html
RaZEr вне форума  
Старый 19.01.2005, 17:09     # 6
V0iD
Junior Member
 
Аватар для V0iD
 
Регистрация: 01.06.2003
Адрес: Msk
Пол: Male
Сообщения: 138

V0iD Путь к славе только начался
Цитата:
RaZEr:
Сам он ничего и не должен говорить. Для этого есть JavaScript console.
Я первым делом туда посмотрел...
Цитата:
RaZEr:
childNodes это массив. Научись пользоваться мануалом.
Да, спасибо, получилось. А мануалы не нашел , w3c посерфил и забил... За линк спасибо тоже)).

Все у меня вышло:
Код:
function Toggle(node) {
	spanstyle = node.nextSibling.style;
	if (navigator.appName == "Microsoft Internet Explorer")
	{
		icon1 = node.children.item(0);
		icon2 = node.children.item(1);
	}
	else
	{
		icon1 = node.childNodes[0];
		icon2 = node.childNodes[1];
	}

	if (spanstyle.display == "none") {
		icon1.src = "minus.gif";
		icon2.src = "folderopen.gif";
		spanstyle.display = '';
	}
	else {
		icon1.src = "plus.gif";
		icon2.src = "folderclose.gif";
		spanstyle.display = 'none';
	}
}
__________________
Завтра будет.
Лучше.

Последний раз редактировалось V0iD; 19.01.2005 в 17:20.
V0iD вне форума  
Старый 19.01.2005, 17:17     # 7
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
Просто Мозилла не знает children, у нее нужно использовать вместо этого childNodes, кстати это и в ИЕ работает прекрасно, поэтому скрипт получается приблизительно такой:
Код:
<script language="JavaScript">
function Toggle(node) {
    if (node.nextSibling.style.display == 'none') {
	if (node.childNodes.length > 0){
	    if (node.childNodes[0].tagName == "IMG") {
	    node.childNodes[0].src = "minus.gif";
	    }

	    if (node.childNodes[1].tagName == "IMG") {
	    node.childNodes[1].src = "folderopen.gif";
	    }
	}
	node.nextSibling.style.display = '';
    }
    else {
	if (node.childNodes.length > 0) {
	    if (node.childNodes[0].tagName == "IMG") {
	    node.childNodes[0].src = "plus.gif";
	    }
	    if (node.childNodes[1].tagName == "IMG") {
	    node.childNodes[1].src = "folderclose.gif";
	    }
	}
    node.nextSibling.style.display = 'none';
    }
}
</script>
Упс, не успел

P.S. Кстати, нормально она говорит об ошибках, вполне четко и понятно, а не молчит...
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.

Последний раз редактировалось Hubbitus; 19.01.2005 в 17:17. Причина: Опоздал слегка :)
Hubbitus вне форума  
Старый 19.01.2005, 17:19     # 8
V0iD
Junior Member
 
Аватар для V0iD
 
Регистрация: 01.06.2003
Адрес: Msk
Пол: Male
Сообщения: 138

V0iD Путь к славе только начался
Цитата:
Hubbitus:
кстати это и в ИЕ работает прекрасно
О, спасибо. А я как-то забыл проверить это в IE, разделил уже код для IE и Mozilla...
btw, я ненужные проверки тоже убрал .
__________________
Завтра будет.
Лучше.
V0iD вне форума  
Старый 19.01.2005, 17:37     # 9
RaZEr
МОД-Оператор ЭВМ
 
Аватар для RaZEr
 
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343

RaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех Гуру
Цитата:
А мануалы не нашел , w3c посерфил и забил...
http://www.w3.org/TR/2004/REC-DOM-Le...0407/core.html
http://www.w3.org/TR/2004/REC-DOM-Le...t-binding.html
RaZEr вне форума  

Опции темы

Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 03:18.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.