@Randewoo

Как такое решить?

Здравствуйте.
Имеется код:
<br>
function edit(id) {<br>
<br>
			if (id) {<br>
				setCookie('id', id)<br>
				window.open('/client/edit.html', '_blank');<br>
			} else {<br>
				var i = 0;<br>
<br>
				array_client.forEach(function (item, index) {<br>
					if ($('#checkbox_' + item).is(':checked')) {<br>
<br>
						setTimeout(function() {<br>
							setCookie('id', item);<br>
							<br>
						}, 10 * index);<br>
<br>
						setTimeout(function() {<br>
							window.open('/client/edit.html', '_blank');<br>
						}, 15 * index);<br>
					}<br>
				});<br>
<br>
				if (!i) {<br>
					$('#edit').addClass('uk-animation-shake');<br>
					setTimeout(function () {<br>
						$('#edit').removeClass('uk-animation-shake');<br>
					}, 600);<br>
				}<br>
			}<br>
		}<br>

Суть его в том, чтобы заносить в Cookie ID клиента и поочередно открывать окна в новой вкладке.
Вот скриншот:
5c8024852d499999407402.png
Собственно, проблема в том, что я выбираю несколько клиентов, нажимаю кнопку "Редактировать", но открывается несколько окон с одним клиентом, в то время, как должно было открыться с теми, которые я выбрал. Как, собственно, сделать так, чтобы окна открывались поочередно и считывали текущий ID с Cookie?
  • Вопрос задан
  • 124 просмотра
Решения вопроса 1
Robur
@Robur
Знаю больше чем это необходимо
Если есть возможность переделать, лучше клиента в url передавать.
Куки общие, скорее всего отсюда все проблемы.
Если именно куки хочется - можно попробовать установку куки и открытие окна в один setTimeout поставить и увеличить задержку между ними, и у вас там разница в 5 милисекунд - а надо чтобы окно полностью успело загрузиться. Если окно грузится 2 секунды, то должно быть "2500*index" например. А так к тому моменту как первое окно только начинает загружаться - значение в куке уже с последнего окна.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы