 
			
				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,298
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от 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,298
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от ZumbiAzul
			
		
	 | 
 
	| 
		Нюансами  Какими? Не знаю..
	 | 
 
	
 
 No comment...  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 |  
  |