То, что вы цитировали, должно работать, за исключением пары незначительных ошибок:
Вам не хватает буквы "e" в setTimeout
Вы используете document.location
;это должно быть window.location
.
Просто протестировал его на IE8, и он ждал, как и ожидалось.Вы делаете это из какого-то события, которое все равно заставит страницу перезагрузиться, например, событие submit
формы?Если это так, вам нужно отменить отправку формы, чтобы она не заменяла код setTimeout
.То, как вы это сделаете, будет зависеть от того, как вы перехватываете событие (например, если вы используете обработчик DOM0 onsubmit="..."
, используйте return false;
; если вы используете что-то более современное, вам нужно event.preventDefault()
; есливы используете jQuery, Prototype или какую-либо другую библиотеку, проверьте их документы на предмет правильного способа предотвращения действия события по умолчанию).
Теперь, хотя это работает так, как вы это сделали, обычно лучшесделать это с помощью функции, а не кода внутри строки, например:
setTimeout(function() {
window.location.href = 'new_page.html';
}, 1000);
Но в любом случае должен работать.