--- РЕДАКТИРОВАТЬ.
Я не понимаю; вчера это казалось проигнорированным; сейчас вроде бы работает. Даже внутри цикла и вызывается через setTimeout()
. В настоящее время у меня возникают трудности с копированием вчерашнего поведения ... Что происходит?
--- 2-е РЕДАКТИРОВАНИЕ.
Первая идея, как «исправить» репликацию проблемы: странно, кажется ли, что это работает, зависит от текущего URL! Например. работает с SE-сайтов , но не с, скажем, http://www.asdf.com/. Как так?
Принимая во внимание, что setTimeout()
работает здесь:
setTimeout(function(){ alert("Hello"); }, 3000);
и window.open()
работает здесь:
window.open("https://www.bbc.com","_self");
и даже сочетание двух работ здесь:
setTimeout(function(){ window.open("https://www.bbc.com","_self") }, 3000);
неожиданно и неожиданно комбинация двух игнорируется в цикле:
i=0;
while(i < 100)
{
setTimeout(function(){ window.open("https://www.bbc.com","_self") }, 3000);
i++
}
Почему?
tldr;
Этот вопрос, кажется, уже приближался к миллиону раз, но пока (насколько я могу судить / искать) с кратким форматом вопросов и ответов; например,
Функция javascript Settimeout () игнорируется
Моделирование JavaScript метода setTimeout () «из первых принципов»