Банальное поучение для начинающих программистов :)
Говорила мне мама: «Сынок, объявляй переменные явно, даже если это вроде бы и не обязательно!», а я все ленился.
Нехитрый код на яваскрипте:
Все просто и понятно и блестяще работает под FireFox. Как культурный программист, проверяю страничку под IE и с удивлением получаю ошибку 'Object doesn't support this property or method' на той строке, где присваивание. Т.е. переменной не удается присвоить значение! Бред какой-то на первый взгляд, особенно для тех кто в первый раз ловит лбом черенок такой грабли.
После получасовых поисков (первые 20 минут было потрачено на поднимание упавшей челюсти с пола) оказалось что все просто до неприличия. Многие читающие наверно уже догадались, особенно если сами ловили такую граблю.
Веб-мастер, который верстал шаблон добавил в страничку невинный блок
А Internet Explorer очень любит упрощать жизь программистам, при этом все делая только сложнее.
И из такой неземной любви, IE создал переменную msg которая соответствовала этому DIV'у. И когда мы пытаемся присвоить этой переменной какое-то значение, то получаем закономерный отлуп.
Решение банально:
После этого у браузера с программистом полное взаимопонимание и любовь :)
Удачи!
Говорила мне мама: «Сынок, объявляй переменные явно, даже если это вроде бы и не обязательно!», а я все ленился.
Нехитрый код на яваскрипте:
<script>
msg='привет';
alert(msg);
</script>
Все просто и понятно и блестяще работает под FireFox. Как культурный программист, проверяю страничку под IE и с удивлением получаю ошибку 'Object doesn't support this property or method' на той строке, где присваивание. Т.е. переменной не удается присвоить значение! Бред какой-то на первый взгляд, особенно для тех кто в первый раз ловит лбом черенок такой грабли.
После получасовых поисков (первые 20 минут было потрачено на поднимание упавшей челюсти с пола) оказалось что все просто до неприличия. Многие читающие наверно уже догадались, особенно если сами ловили такую граблю.
Веб-мастер, который верстал шаблон добавил в страничку невинный блок
<div id='msg'>Какое-то сообщение</div>
А Internet Explorer очень любит упрощать жизь программистам, при этом все делая только сложнее.
И из такой неземной любви, IE создал переменную msg которая соответствовала этому DIV'у. И когда мы пытаемся присвоить этой переменной какое-то значение, то получаем закономерный отлуп.
Решение банально:
<script>
var msg='привет';
alert(msg);
</script>
После этого у браузера с программистом полное взаимопонимание и любовь :)
Удачи!