Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   button onClick объект не поддерживает это свойство или метод (https://javascript.ru/forum/events/30653-button-onclick-obekt-ne-podderzhivaet-ehto-svojjstvo-ili-metod.html)

dimarus83 11.08.2012 00:11

button onClick объект не поддерживает это свойство или метод
 
Здравствуйте, помогите пожалуйста начинающему программисту.
internet explorer 8 выдает ошибку: объект не поддерживает это свойство или метод (строка 36 символ 1)
вот эта строка:
<input type="button" value="Запустить часы" onClick="clock()">

а вот и весь код

<html>
<head>

<script language="javascript">
<!-- hide

var timeStr, dateStr;

function clock() {
now = new Date();

// время
hours = now.getHours();
minutes = now.getMinutes();
seconds = now.getSeconds();
timeStr = "" + hours + ((minutes < 10) ? ":0" : ":") + minutes;
timeStr += ((seconds < 10) ? ":0" : ":") + seconds;
document.clock.time.value = timeStr;

// дата
date = now.getDate();
month = now.getMonth()+1;
year = now.getYear();
dateStr = "" + month;
dateStr += ((date < 10) ? "/0" : "/") + date;
dateStr += "/" + year;
document.clock.date.value = dateStr;

Timer = setTimeout("clock()", 1000);
}

//-->
</script>
</head>
<form>
<input type="button" value="Запустить часы" onClick="clock()">
</form>
<form name = "clock">
Время:
<input type = "text" name = "time" size = "8" value=""><br>
Дата:&nbsp &nbsp
<input type = "text" name = "date" size = "8" value="">
</form>
</body>
</html>

cyber 11.08.2012 00:24

воспользуйтесь тегом HTML что бы код был читабельным

vadim5june 11.08.2012 00:45

Цитата:

Сообщение от dimarus83
объект не поддерживает это свойство или метод

напишите onclick вместо onClick

cyber 11.08.2012 01:07

Цитата:

Сообщение от vadim5june (Сообщение 196479)
напишите onclick вместо onClick

в хтмл регистр не имеет значение, так что будет работать onclick() и oNcLick() и ONCLICK()

vadim5june 11.08.2012 01:19

Цитата:

Сообщение от cyber (Сообщение 196491)
в хтмл регистр не имеет значение, так что будет работать onclick() и oNcLick() и ONCLICK()

По стандарту XHTML все теги и атрибуты должны быть в нижнем регистре.

cyber 11.08.2012 01:31

Цитата:

Сообщение от vadim5june (Сообщение 196500)
По стандарту XHTML все теги и атрибуты должны быть в нижнем регистре.

а с каких пор ие8 начал отвечать стандартам? :)

<!DOCTYPE HTML>
<html>
  <head> </head>
  <body>
   
    <a href='#' ONCLICK='cl();'>test</a>
    <script>

      function cl() {
      
      
      alert('afasfs');
        return false;
      
       }


    </script>

  </body>
</html>

dimarus83 11.08.2012 10:19

Спасибо, Дзен-трансгуманист. Дело было правдо в конфикте имен)

rori 01.03.2014 14:50

у меня ругается на эти строчки (variant_product_options.indexOf(option_id) != -1) с такой же ошибкой как у автора, что можно сделать?


function get_options_values(options_keys) {
						var options_values = {};
						
						for (var i=0;i<$("select[name^=option]").length;i++) {
						
							option_id = parseInt( $("select[name^=option]")[i].name.substr(7,$("select[name^=option]")[i].name.length-8) );
							if (variant_product_options.indexOf(option_id) != -1) {
								options_values[option_id] = $("select[name^=option]")[i].value;
								options_keys.push(option_id);
							}
						}
						
						// сначала все радио
						for (var i=0;i<$("input[type=radio][name^=option]").length;i++) {
						
							option_id = parseInt( $("input[type=radio][name^=option]")[i].name.substr(7,$("input[type=radio][name^=option]")[i].name.length-8) );
							if (variant_product_options.indexOf(option_id) != -1) {
								options_values[option_id] = 0;
								if (options_keys.indexOf(option_id) == -1) {
									options_keys.push(option_id);
								}
							}
						}
						
						// затем только выбранные
						for (var i=0;i<$("input[type=radio][name^=option]:checked").length;i++) {
							option_id = parseInt( $("input[type=radio][name^=option]:checked")[i].name.substr(7,$("input[type=radio][name^=option]:checked")[i].name.length-8) );
							if (variant_product_options.indexOf(option_id) != -1) {
								options_values[option_id] = $("input[type=radio][name^=option]:checked")[i].value;
							}
						}
						
						return options_values;
					}

danik.js 01.03.2014 15:41

В IE8 нет Array.prototype.indexOf (из ES5 стандарта).
Нужно либо подключить polyfill отсюда: https://developer.mozilla.org/en-US/.../Array/indexOf
Либо подключить целиком костыль для всех ES5 функций: https://github.com/es-shims/es5-shim...er/es5-shim.js


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