Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   newWin.close(); Отрабатывает раньше (https://javascript.ru/forum/events/59751-newwin-close-%3B-otrabatyvaet-ranshe.html)

Borkot 25.11.2015 11:02

newWin.close(); Отрабатывает раньше
 
Доброе время суток!
Пишу код, смысл такой, чтобы открывалась новая вкладка, отображалась около 3,5 сек,и закрывалась с помощью newWin.close(); но перед этим должен выполнится var Tm2=setTimeout("OpenHtml()",3500);
Вот код:
<html>
 <head>
 <meta charset="utf-8">
 <script type="text/javascript">

function START()
{
	var i = 1;
	var HtmlStr='НАша Строка';
	while (i<10) {
	
	var Tm2=setTimeout("OpenHtml()",3500);
		i++;
	}
	return;
}
function OpenHtml()
	{ 
	var TempNumb=getRandomInt();
	var newWin = window.open("http://javascript.ru","Newtab");
	var Tm3=setTimeout(Delay,3500);
	newWin.blur();
	newWin.close();
	return;
	}

function getRandomInt()
	{
	return Math.floor(Math.random() * (500000 - 30000 + 1)) + 30000
	}
	function Delay()
	{
	return
	}
</script>
</head>
<body>
<input type="button" onclick="START()" value="Старт!"/>
 </body>	 
</html>

Но newWin.close(); отрабатывает раньше.

рони 25.11.2015 11:22

Borkot,
почему newWin.close(); не в function Delay?
обьявление var newWin; вынести из функции OpenHtml
в строке 20 var убрать

Borkot 25.11.2015 11:45

Объявил глобальным Объектом, но все равно не работает в обычном режиме, в отладчике все прекрасно, а без отладчика и 1сек не проходит как дочернее окно закрывается...
Сейчас код такой:
<html>
 <head>
 <meta charset="utf-8">
 <script type="text/javascript">
var newWin;
function START()
{
	var i = 1;
	var HtmlStr='НАша Строка';
	while (i<10) {
	
	var Tm2=setTimeout("OpenHtml()",5000);
		i++;
	}
	return;
}
function OpenHtml()
	{ 
	var TempNumb=getRandomInt();
	newWin = window.open("http://javascript.ru","Newtab");
	
	newWin.blur();
	setTimeout(Delay(),3500);

	return;
	}

function getRandomInt()
	{
	return Math.floor(Math.random() * (500000 - 30000 + 1)) + 30000
	}
	function Delay()
	{
	newWin.close();
	return
	}
</script>
</head>
<body>
<input type="button" onclick="START()" value="Старт!"/>
 </body>	 
</html>

Borkot 25.11.2015 11:46

Увидел почему...Невнимательность
 
Нет почему то все таки в отладчике работает как бы нормально, а в обычном не очень.
Извеняйте... Но этот код как заноза, не выходит из головы...


Часовой пояс GMT +3, время: 07:59.