Мысли о программировании, жизни и христианстве.

Решение проблемы с window.location.href в Chrome

Ковыряю сейчас online CRM для церкви и столкнулся с проблемой того, что объект window.location.href у меня не работал в браузерах на WebKit (Chrome и Safari) и ряде браузеров с другими движками, но корректно работал в IE.
После некоторых плясок с бубном и поиску в интернете, было найдено универсально работающее во всех браузерах решение.

window.location.href = "page.html"

заменить на

setTimeout(function(){document.location.href = "page.html";},500);
Поделиться
5 комментариев
aleks 2014

Спасибо автору. Единственный способ который помог в данном решении, работающий действительно во всех браузерах

ikar 2014

Thanks! It’s really working.

ikar 2014

but
setTimeout(function(){document.location.href = «page.html;»},500);
should be changed to
setTimeout(function(){document.location.href = «page.html»;},500);
as far as I understand :)

Евгений Андреевич Куценко 2014

Thanks! :-)

Алексей 2015

В ФФ не работает если написать так
setTimeout(function(){document.location.href = «http://site.ru/page.html»;},500);

Евгений Андреевич Куценко 2015

Попробуйте передать ссылку как параметр.

Алексей 2015

Вообще было так:

1 Вариант работает нормально, все логично
<a href=«javascript:goPage(’/contacts’)»>Контакты</a>
===
function goPage(sPage)
{
setTimeout(function(){window.location.href = sPage;},500);
}
2 Вариант не работает только в ФФ
<a href=«javascript:goPage(’http://site.ru/contacts')»>Контакты</a>
===
function goPage(sPage)
{
setTimeout(function(){window.location.href = sPage;},500);
}
==
Это и не понятно.

Евгений Андреевич Куценко 2015

Мистика с этой кроссбраузерностью. Тут я ничего сказать не могу.