Javascript-форум (https://javascript.ru/forum/)
-   Internet Explorer (https://javascript.ru/forum/css-html-internet-explorer/)
-   -   Не срабатывает на установленный атрибут onclick (https://javascript.ru/forum/css-html-internet-explorer/2517-ne-srabatyvaet-na-ustanovlennyjj-atribut-onclick.html)

desevg 09.01.2009 08:08

Не срабатывает на установленный атрибут 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 модуль для табуляции).

Octane 09.01.2009 12:16

Забудьте о setAttribute и getAttribute, работайте с ссылками на узлы, как с обычными объектами:
elem.onclick = function() {
   alert(something);
};


Часовой пояс GMT +3, время: 05:29.