Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.11.2011, 15:45
Новичок на форуме
Отправить личное сообщение для ZumbiAzul Посмотреть профиль Найти все сообщения от ZumbiAzul
 
Регистрация: 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...
Ответить с цитированием
  #2 (permalink)  
Старый 20.11.2011, 15:52
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от 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.
Ответить с цитированием
  #3 (permalink)  
Старый 20.11.2011, 16:19
Новичок на форуме
Отправить личное сообщение для ZumbiAzul Посмотреть профиль Найти все сообщения от ZumbiAzul
 
Регистрация: 20.11.2011
Сообщений: 9

Сообщение от ksa Посмотреть сообщение
Чем?
Нюансами Какими? Не знаю... Погуглите

Сообщение от ksa Посмотреть сообщение
А если так?

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>';		
	{
}
Так тоже не работает... Но я уже разобрался. IE более строг к синтаксису и без var не понимает, что объявляется переменная-объект)
Ответить с цитированием
  #4 (permalink)  
Старый 20.11.2011, 16:29
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Сообщение от ZumbiAzul
Я понимаю, что DOM у разных браузеров отличается...
DOM - Document Object Model, объектная модель документа, в разных браузерах не отличается. Вот методы работы с ней - да.

Сообщение от ZumbiAzul
IE более строг к синтаксису и без var не понимает, что объявляется переменная-объект)
Рискну предположить, что дело не в "строгости" IE, а в том, что у вас на странице есть элемент с id="avatar".
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #5 (permalink)  
Старый 20.11.2011, 16:45
Новичок на форуме
Отправить личное сообщение для ZumbiAzul Посмотреть профиль Найти все сообщения от ZumbiAzul
 
Регистрация: 20.11.2011
Сообщений: 9

Сообщение от trikadin Посмотреть сообщение
Рискну предположить, что дело не в "строгости" IE, а в том, что у вас на странице есть элемент с id="avatar".
Ну и что? Факт - без var не работало, c var заработало (даже несмотря на то, что есть элемент с id="avatar").
Ответить с цитированием
  #6 (permalink)  
Старый 20.11.2011, 16:52
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Сообщение от ZumbiAzul
Ну и что? Факт - без var не работало, c var заработало (даже несмотря на то, что есть элемент с id="avatar").
А кто сказал, что это плохой вариант исправления? Просто лучше понимать, откуда берутся ошибки. Например, здесь дело было в том, что ie имеет привычку создавать read-only глобальные переменные по идентификаторам. Поэтому, когда вы пытались записать в avatar другое значение, ie передавал ошибку. А когда вы поставили var, была создана локальная переменная, которая никоим образом не мешала глобальной.
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #7 (permalink)  
Старый 20.11.2011, 17:11
Новичок на форуме
Отправить личное сообщение для ZumbiAzul Посмотреть профиль Найти все сообщения от ZumbiAzul
 
Регистрация: 20.11.2011
Сообщений: 9

Сообщение от trikadin Посмотреть сообщение
у вас на странице есть элемент с id="avatar"
В конечном итоге (сразу не посмотрел) на странице нет элемента с id="avatar"...

Сообщение от trikadin Посмотреть сообщение
ie имеет привычку создавать read-only глобальные переменные по идентификаторам. Поэтому, когда вы пытались записать в avatar другое значение, ie передавал ошибку. А когда вы поставили var, была создана локальная переменная, которая никоим образом не мешала глобальной.
Наверное, вы имеете ввиду все-таки avatar_large... Странно, что при всем том, что вы тут пишете, ваш вариант ведь не работает... Если вы знали, что IE без var создает read-only переменные, тогда почему сами не поставили var? Короче, я лишь хочу, чтобы вы поняли, что все мы в конечном итоге люди и нам свойственно ошибаться... И мне и вам... И если вы где-то ошиблись, то я точно о вас худшего мнения не стал.
Ответить с цитированием
  #8 (permalink)  
Старый 20.11.2011, 17:26
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Сообщение от ZumbiAzul
В конечном итоге (сразу не посмотрел) на странице нет элемента с id="avatar"...
Я лишь предположил.

Сообщение от ZumbiAzul
Странно, что при всем том, что вы тут пишете, ваш вариант ведь не работает...
Ээ... Простите, какой вариант? Можно я тоже о нём узнаю?)

Сообщение от ZumbiAzul
Если вы знали, что IE без var создает read-only переменные, тогда почему сами не поставили var?
Куда поставил? Когда я пишу код, я ставлю var))

Сообщение от ZumbiAzul
И если вы где-то ошиблись, то я точно о вас худшего мнения не стал.
Это успокаивает)
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #9 (permalink)  
Старый 20.11.2011, 17:34
Новичок на форуме
Отправить личное сообщение для ZumbiAzul Посмотреть профиль Найти все сообщения от ZumbiAzul
 
Регистрация: 20.11.2011
Сообщений: 9

Извините
Ответить с цитированием
  #10 (permalink)  
Старый 20.11.2011, 18:13
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от ZumbiAzul
Нюансами Какими? Не знаю..
No comment...
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает onClick в IE ivan1 Events/DOM/Window 4 14.10.2011 20:55
Не работает в мозиле onClick в динамических чекбоксах Igor2001 Элементы интерфейса 7 21.09.2011 11:31
Функция которая работает на OnLoad не хочет работать на OnClick libinstyle Элементы интерфейса 6 23.03.2010 01:42
onclick не работает в Mozilla albushi Firefox/Mozilla 1 05.11.2009 12:11
Не работает onClick добавление тега <s> AvaGet Общие вопросы Javascript 13 09.12.2008 18:41