Por que não posso passar “window.location.reload” como um argumento para setTimeout?
Eu adoraria ter uma ideia do erro que estou vendo no Safari e no Chrome com a seguinte linha de código:
setTimeout(window.location.reload, 250);
Relatórios do Chrome:Uncaught TypeError: Illegal invocation
E Safari:TypeError: Type error
No FireFox, o código é executado corretamente. Além disso, esse código é executado bem em cada um dos três navegadores:
setTimeout((function() {
window.location.reload();
}), 250);
O Chrome e o Safari não têm problemas com este código:
var say_hello = function () { alert("hello") };
setTimeout(say_hello, 250);
O que é especial sobrewindow.location.reload
que causa esse erro?
(não tenho certeza se é útil ou não, mas aqui está umjsfiddle ilustrando isso)