Это, наверное, что-то простое, что я пропускаю, но мой гугл-фу не показывает ничего, что могло бы объяснить причину. Возьмем, например, следующий фрагмент (пока игнорируем, что встроенный js обычно считается плохой практикой):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<title>
</title>
</head>
<body>
<form action="">
<div>
<input type="text" id="pattern" value="foobar">
<input type="button" value="Alert" OnClick="alert(pattern.value);">
</div>
</form>
</body>
</html>
Выше будет напечатано предупреждающее сообщение «foobar» в IE8 и Firefox 3, но Chrome выведет «undefined». Изменение pattern
на что-то еще, например pattern_
, приведет к выводу 'foobar' для всех трех браузеров, как и ожидалось.
Является ли pattern
зарезервированным словом или именем, используемым для одной из встроенных библиотек js? В чем причина того, что это не работает в Chrome?