При разработке некоторый код JavaScript для браузера я столкнулся странные ошибки в Chrome:Javascript ошибка в Chrome и Opera
var element = document.getElementById('someId');
element.style.customProp = 'my property';
element.addEventListener('click', function() {
console.log(element.style.customProp);
}, false);
На нажмите консольных печатает «неопределенными», но когда я изменить код:
var element = document.getElementById('someId');
element.style.customProp = 'my property';
var a = element.style;
element.addEventListener('click', function() {
console.log(element.style.customProp);
}, false);
консоль печатает «моя собственность».
Первая версия кода работает как в Firefox, так и в Internet Explorer. Это не в Chrome и Opera. Для меня это явно ошибка, но, может быть, я чего-то не хватает. Это действительно ошибка или что мне не хватает?
Так что единственное различие заключается в том, что вы сохраняете ссылку в этой переменной «a» объекту «style»? – Pointy
Я предполагаю, что браузеры Webkit предназначены не для того, чтобы вы устанавливали любое свойство объекта стиля. Не знаю, почему второй позволяет вам. –
Если я установил случайное свойство объекта «стиль» с консоли Chrome, оно, похоже, работает нормально. – Pointy