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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> <map> и Opera, или решение через одно место 
:(
    Опции темы
dimes
Дата 19.7.2005, 09:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Тестил на opera 8.01
Есть следующая конструкция

Код

<map name="test">
 <area id='a_1' coords="10,10,100,100" href="#" onclick='show_txt("1","a_1");return false;'>
 <area id='a_2' coords="200,200,300,300" href="#" onclick='show_txt("2","a_2");return false;'>
</map>

Функцию show_txt я не привожу так как она здесь ни причем.

Вобщем как видно попросили меня зделать интерактивную картинку, сделал все без проблемм, но потом попросили сделать так чтобы один из пунктов выбирался по умолчанию.
Так как я очень ленивый, а теги area формируются руками и функции show_txt("1","a_1") имеет значительно больше параметров чем я здесь привел, которые тоже формируются руками я сдела так:

Код

var elm=document.getElementById('a_'+1);
if (elm){
 try{
   elm.click();
 }
 catch(e) { alert(e) }
}


Все работало пока не дошла очередь до opera... оказалось что для тега area в опере нельзя применять click()! Побившись головой я пришел к такому решению

Код

var elm=document.getElementById('a_'+1);
if (elm){
 try{
  if ( window.opera ){
   var exe_str=elm.onclick.toString();
   var char_start=exe_str.indexOf("show_txt")-1;
   var char_fin=exe_str.indexOf(");")-char_start+2;
   exe_str=exe_str.substr( char_start,char_fin )
   eval(exe_str)
  }
  else{
   elm.click();
  }
 }
 catch(e) { alert(e) }
}


Уважаемые коллеги как видно из кода, решение мягко говоря через одно место, поэтому хотелось бы услышать замечание и предложения более продвинутых товарищей smile

Это сообщение отредактировал(а) dimes - 19.7.2005, 09:31
PM ICQ   Вверх
Sardar
Дата 19.7.2005, 13:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


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

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



Если ты не используешь обьект event в show_txt, то можешь просто вызывать onclick, ведь это просто функция.
Код
var elm=document.getElementById('a_'+1);
elm.onclick();

Если у тебя код в каком либо другом аттрибуте, не событии, то можешь всегда по нему построить функцию. Инфа по теме:

http://forum.vingrad.ru/index.php?showtopic=49609
http://forum.vingrad.ru/index.php?showtopi...ndpost&p=386193


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


Бывалый
*


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

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



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


 




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


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

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