Показать сообщение отдельно
  #9 (permalink)  
Старый 11.03.2011, 02:44
Аватар для poorking
prodigy
Отправить личное сообщение для poorking Посмотреть профиль Найти все сообщения от poorking
 
Регистрация: 01.11.2010
Сообщений: 503

FINoM,
Ваша страничка также не работает у меня под win7x64 HP ie8, автоматические обновления, уж не знаю что еще может внести отличия в эти ie


Заодно расскажу какое я провел наблюдение.
И при упоминании IE имеется ввиду мой IE8 (раз, как выяснилось, работает отлично от вашего ) А возможно, и не только IE, вдруг у меня с системой что-то.

При загрузке страницы файрфокс и IE автоматом делают window.focus(), если самому позвать window.focus(), хром, сафари и опера все равно не сделают.

IE при блуре ничего не делает, но при фокусе делает фокус и тут же блур, но не всегда, когда раз 10 тыкнешь в окно, на рабочий стол, в окно и т.д., то начинает работать нормально

Сафари при фокусе делает фокус 2 раза.

Если в обработчиках onfocus и onbur вызывать window.focus() и window.blur() соответственно, первой строкой кода, то происходят вообще странные вещи, хотя и код будет выглядеть не менее странно. В файрфоксе, опере, хроме и сафари все работает так же, в IE эта строка выполняется, но судя по результату, после того как произойдет то, что он делает без этой строки, то бишь при фокусе произойдет фокус-блур-фокус, при блуре наоборот. Если нужно только менять стили, то можно так сделать, во всех этих браузерах выглядит правильно, но если нужно что то кроме этого делать, то естественно не подходит, т.к. обработчики выполняются по несколько раз в некоторых случаях

Тестировал на этом
<!DOCTYPE html>
<script type ="text/javascript">
	window.onload = function(){	
		var i = 0;
		var blurc = document.getElementById("blurc");
		var focusc = document.getElementById("focusc");
	
		//var win = window/* @cc_on.document */;
		//var body = document.documentElement || document.body;
		
		window.onblur = function(){			
			//window.blur();
			document.body.style.backgroundColor = "red";
			
			blurc.innerHTML += "был blur"+ ++i +"!<br />";
			
			return false;
		}
		
		window.onfocus = function(){
			//window.focus();
			document.body.style.backgroundColor = "green";
			
			focusc.innerHTML += "был focus"+ ++i +"!<br />";
			return false;
		}
		
		//window.focus();
	}
	
	
</script>
<style type = "text/css">
	.col{
		display: inline-block;
		vertical-align: top;
	}
</style>

<div class = "col" id = "focusc"></div>
<div class = "col" id = "blurc"></div>

Возможно я тут ошибку допустил, конечно.
__________________
readOnly

Последний раз редактировалось poorking, 11.03.2011 в 03:14.
Ответить с цитированием