Показать сообщение отдельно
  #2 (permalink)  
Старый 05.12.2013, 17:42
Аватар для Arramis
Кандидат Javascript-наук
Отправить личное сообщение для Arramis Посмотреть профиль Найти все сообщения от Arramis
 
Регистрация: 22.07.2013
Сообщений: 104

Сообщение от Станислав89 Посмотреть сообщение
если setTimeout, дублировать ниже, но с другой ссылкой копирует последние значене setTimeout, т.е. последнее окно.
это происходит потому, что window.open() возращает ссылку на созданное окно, если опять вызывать window.open но с другим URL, то эта ссылка поменяется, а вместе с ней изменится и URL в адресной строке, что и повлечет за собой переход по нему в текущем окне, а не в новом.

чтобы этого избежать, возвращаемую ссылку надо "убивать":
var links = ['google.com', 'ya.ru', 'vk.com', 'facebook.com'], i = 0, win = 0, left = 20;

function openWindows(linksArr) {
	
	setTimeout(function() {
	
		win = open( 'http://' + linksArr[i++], 'test', 'width=300,height=200,left=' + left + '' );
		
		win.opener = null;
			
		left += 320;	
			
		if ( i !== linksArr.length )
			openWindows(linksArr);
	
	}, 5000);
}

openWindows(links);

Последний раз редактировалось Arramis, 05.12.2013 в 17:50.
Ответить с цитированием