Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Javascript работает только под IE Opera, под Moziloi и NN не работает 
:(
    Опции темы
Cfcoder
Дата 27.10.2005, 09:55 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











помогите оптимизировать под Mozilu i NN

Код
<script language="JavaScript">
var img1 = new Image();
img1.src = "plus.gif";
var img2 = new Image();
img2.src = "minus.gif";
function doOutline()
     {
  var srcId, srcElement, targetElement;
  srcElement = window.event.srcElement;
  if (srcElement.className.toUpperCase() == "LEVEL1" || srcElement.className.toUpperCase() == "FAQ") {
         srcID = srcElement.id.substr(0, srcElement.id.length-1);
         targetElement = document.all(srcID + "s");
         srcElement = document.all(srcID + "i");

    if (targetElement.style.display == "none") {            
                 targetElement.style.display = "";
                 if (srcElement.className == "LEVEL1") srcElement.src = img2.src;
      
} else {
                 targetElement.style.display = "none";
                 if (srcElement.className == "LEVEL1") srcElement.src = img1.src;
     }
  }
}
</script>


Вызов функции:
Код
<BODY OnMouseUp="doOutline()" BGCOLOR=#D4D0C8 LEFTMARGIN=0 TOPMARGIN=0 MARGINWIDTH=0 MARGINHEIGHT=0 >

М
 
Жми на кнопку code в следующий раз


Это сообщение отредактировал(а) Sardar - 27.10.2005, 11:04
  Вверх
sergejzr
Дата 27.10.2005, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 10
Всего: 360



Свойства document.all не существует в мозилле. Присваивай каждому элементу ID и выбирай по нему.


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Sardar
Дата 27.10.2005, 11:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Явно скрипт от какого то дерева. Мозилла (Опера и остальные) любят скрипты написанные по стандартам W3C, жаль что "матёрые" програмисты этого не читают.

Во первых window.event не существует, обьект передаёться первым параметром функции. Раз функция взываеться из inline обработчика, значит ты должен сам передать обьект-событие: OnMouseUp="doOutline(event)"

srcElement не существует, есть target, хотя по мне srcElement более наглядное имя, но W3C с этим не согласна.

document.all заменяем на document.getElementById(), это справедливо и для ИЕ.

В остальном всё будет работать.
Добавлено @ 11:11
Цитата(sergej @ 27.10.2005, 10:06)
Свойства document.all не существует в мозилле.

Кстати существует, просто Мозилла будет кидать warning'и, но работать будет smile


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Cfcoder
Дата 4.11.2005, 19:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 27.10.2005

Репутация: нет
Всего: нет



Заменил document.all на document.getElementById(), но по прежнему не работает под Moziloi i NN.

Код

<script language="JavaScript">
.............................
         srcID = srcElement.id.substr(0, srcElement.id.length-1);
         targetElement = document.getElementById(srcID + "s");
         srcElement = document.getElementById(srcID + "i");
.........................
</script>

<BODY OnMouseUp="doOutline(event)" BGCOLOR=#D4D0C8 LEFTMARGIN=0 TOPMARGIN=0 MARGINWIDTH=0 MARGINHEIGHT=0>


Это сообщение отредактировал(а) Aliance - 4.11.2005, 19:20
PM MAIL   Вверх
Aliance
Дата 4.11.2005, 19:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137




 ! 
 
Пользуемся кнопкой код!

PM MAIL WWW ICQ Skype   Вверх
Sardar
Дата 4.11.2005, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Cfcoder сразу скажу, это было глупо вырезать верхнюю и нижнюю часть кода, показав только getElementById. Да, как минимум две последние строчки должны работать правильно везде, если ты доволен этим ответом smile

Приведи весь изменённый код. Повторюсь, работу с событиями нужно переделать, т.к. уверен что srcElement ты попрежнему от window.event достаёшь.

Вообще читай и выполняй рекомендации полностью, а не то что кажеться самым простым smile


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Cfcoder
Дата 5.11.2005, 20:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 27.10.2005

Репутация: нет
Всего: нет



Я не очень силен в JavaScripte! Пожалуйста помогите переделать!

Код

<script language="JavaScript">
var img1 = new Image();
img1.src = "plus.gif";
var img2 = new Image();
img2.src = "minus.gif";
function doOutline()
     {
  var srcId, srcElement, targetElement;
  srcElement = window.event.srcElement;
  if (srcElement.className.toUpperCase() == "LEVEL1" || srcElement.className.toUpperCase() == "FAQ") {
         srcID = srcElement.id.substr(0, srcElement.id.length-1);
         targetElement = document.getElementById(srcID + "s");
         srcElement = document.getElementById(srcID + "i");


    if (targetElement.style.display == "none") {            
                 targetElement.style.display = "";
                 if (srcElement.className == "LEVEL1") srcElement.src = img2.src;
      
} else {
                 targetElement.style.display = "none";
                 if (srcElement.className == "LEVEL1") srcElement.src = img1.src;
     }
  }
}
</script>

PM MAIL   Вверх
Cfcoder
Дата 11.11.2005, 18:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 27.10.2005

Репутация: нет
Всего: нет



Уже разобрался!!!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1105 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.