20.11.2011, 15:45
|
Новичок на форуме
|
|
Регистрация: 20.11.2011
Сообщений: 9
|
|
не работает onclick в IE...
Здравствуйте!
Создал два файла: index.html и funcs.js.
index.html:
Код:
|
<!DOCTYPE html>
<HTML lang=ru>
<HEAD>
<SCRIPT type="text/javascript" src="funcs.js"></SCRIPT>
</HEAD>
<BODY>
<DIV class="avatar_large" id="avatar_large"></DIV>
<IMG src="pic.jpg" id="avatar_pic">
</BODY>
</HTML> |
funcs.js:
Код:
|
window.onload = function() {
avatar = document.getElementById('avatar_pic');
avatar_large = document.getElementById('avatar_large');
avatar.onclick = function() {
avatar_large.className = 'avatar_large_visible';
avatar_large.innerHTML = '<IMG src=pic.jpg width=500 height=400>';
{
} |
где avatar_large_visible - какой-нибудь стилевой класс.
Почему в IE это не работает, а в остальных браузерах работает? Я понимаю, что DOM у разных браузеров отличается... Но по-моему, в этом коде ничего сверхестественного не должно быть для IE...
|
|
20.11.2011, 15:52
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,228
|
|
Сообщение от ZumbiAzul
|
Я понимаю, что DOM у разных браузеров отличается...
|
Чем?
Сообщение от ZumbiAzul
|
Почему в IE это не работает
|
А если так?
window.onload = function() {
avatar = document.getElementById('avatar_pic');
avatar.onclick = function() {
avatar_large = document.getElementById('avatar_large');
avatar_large.className = 'avatar_large_visible';
avatar_large.innerHTML = '<IMG src=pic.jpg width=500 height=400>';
{
}
Последний раз редактировалось ksa, 20.11.2011 в 15:57.
|
|
20.11.2011, 16:19
|
Новичок на форуме
|
|
Регистрация: 20.11.2011
Сообщений: 9
|
|
|
|
20.11.2011, 16:29
|
|
Модератор
|
|
Регистрация: 27.04.2010
Сообщений: 3,417
|
|
Сообщение от ZumbiAzul
|
Я понимаю, что DOM у разных браузеров отличается...
|
DOM - Document Object Model, объектная модель документа, в разных браузерах не отличается. Вот методы работы с ней - да.
Сообщение от ZumbiAzul
|
IE более строг к синтаксису и без var не понимает, что объявляется переменная-объект)
|
Рискну предположить, что дело не в "строгости" IE, а в том, что у вас на странице есть элемент с id="avatar".
|
|
20.11.2011, 16:45
|
Новичок на форуме
|
|
Регистрация: 20.11.2011
Сообщений: 9
|
|
Сообщение от trikadin
|
Рискну предположить, что дело не в "строгости" IE, а в том, что у вас на странице есть элемент с id="avatar".
|
Ну и что? Факт - без var не работало, c var заработало (даже несмотря на то, что есть элемент с id="avatar").
|
|
20.11.2011, 16:52
|
|
Модератор
|
|
Регистрация: 27.04.2010
Сообщений: 3,417
|
|
Сообщение от ZumbiAzul
|
Ну и что? Факт - без var не работало, c var заработало (даже несмотря на то, что есть элемент с id="avatar").
|
А кто сказал, что это плохой вариант исправления? Просто лучше понимать, откуда берутся ошибки. Например, здесь дело было в том, что ie имеет привычку создавать read-only глобальные переменные по идентификаторам. Поэтому, когда вы пытались записать в avatar другое значение, ie передавал ошибку. А когда вы поставили var, была создана локальная переменная, которая никоим образом не мешала глобальной.
|
|
20.11.2011, 17:11
|
Новичок на форуме
|
|
Регистрация: 20.11.2011
Сообщений: 9
|
|
Сообщение от trikadin
|
у вас на странице есть элемент с id="avatar"
|
В конечном итоге (сразу не посмотрел) на странице нет элемента с id="avatar"...
Сообщение от trikadin
|
ie имеет привычку создавать read-only глобальные переменные по идентификаторам. Поэтому, когда вы пытались записать в avatar другое значение, ie передавал ошибку. А когда вы поставили var, была создана локальная переменная, которая никоим образом не мешала глобальной.
|
Наверное, вы имеете ввиду все-таки avatar_large... Странно, что при всем том, что вы тут пишете, ваш вариант ведь не работает... Если вы знали, что IE без var создает read-only переменные, тогда почему сами не поставили var? Короче, я лишь хочу, чтобы вы поняли, что все мы в конечном итоге люди и нам свойственно ошибаться... И мне и вам... И если вы где-то ошиблись, то я точно о вас худшего мнения не стал.
|
|
20.11.2011, 17:26
|
|
Модератор
|
|
Регистрация: 27.04.2010
Сообщений: 3,417
|
|
Сообщение от ZumbiAzul
|
В конечном итоге (сразу не посмотрел) на странице нет элемента с id="avatar"...
|
Я лишь предположил.
Сообщение от ZumbiAzul
|
Странно, что при всем том, что вы тут пишете, ваш вариант ведь не работает...
|
Ээ... Простите, какой вариант? Можно я тоже о нём узнаю?)
Сообщение от ZumbiAzul
|
Если вы знали, что IE без var создает read-only переменные, тогда почему сами не поставили var?
|
Куда поставил? Когда я пишу код, я ставлю var))
Сообщение от ZumbiAzul
|
И если вы где-то ошиблись, то я точно о вас худшего мнения не стал.
|
Это успокаивает)
|
|
20.11.2011, 17:34
|
Новичок на форуме
|
|
Регистрация: 20.11.2011
Сообщений: 9
|
|
Извините
|
|
20.11.2011, 18:13
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,228
|
|
Сообщение от ZumbiAzul
|
Нюансами Какими? Не знаю..
|
No comment...
|
|
|
|