Показать сообщение отдельно
  #1 (permalink)  
Старый 09.01.2009, 08:08
Новичок на форуме
Отправить личное сообщение для desevg Посмотреть профиль Найти все сообщения от desevg
 
Регистрация: 09.01.2009
Сообщений: 2

Не срабатывает на установленный атрибут onclick
Всем привет.

Возникла проблема.
есть такой код.

function l_goto(){
			window.location.href='http://ya.ru'; 
			return false;
		}
		function set_Attribute(){
		  var ul = document.getElementById('block-quicktabs-8');
		  var array_elements = ul.getElementsByTagName('ul')[0].getElementsByTagName('li');
		  var i = 0;
		  while(i < array_elements.length){
		    array_elements[i].id = 'id_' + i;
			if(i == 4){ 
				array_elements[i].style.marginLeft = '102px'; 
				var a_elem = array_elements[i].getElementsByTagName('a');
				var value = 'http://ya.ru';
				a_elem[0].setAttribute('onclick', 'return l_goto()'); 
				//array_elements[i].setAttribute('onclick', 'alert(something)'); 
			}
		    i++;
		  }
		}


в IE 7 не срабатывает переход по ссылке. судя по статье http://javascript.ru/start/dom/intro#dom-atributy в частности части:

Атрибуты и обработчики событий
В IE текстовое значение, присвоенное атрибуту onclick, не является функцией и не будет работать:

elem.setAttribute('onclick', 'alert(something)') // в IE не работает


Firefox корректно преобразовывает строку в функцию, поэтому там этот фрагмент работать будет. Но, вообще говоря, никакой браузер не обязан этого делать.

--
Но очень нужно сделать переход подобным образом. просто задать атрибут href для ссылки нельзя. блокируется модулем(Drupal 6 модуль для табуляции).
Ответить с цитированием