Mi piacerebbe una certa comprensione nell'errore che sto vedendo in Safari e Chrome con la seguente riga di codice:Perché non posso passare "window.location.reload" come argomento a setTimeout?
setTimeout(window.location.reload, 250);
Chrome riporta:
Uncaught TypeError: Illegal invocation
e Safari:
TypeError: Type error
In FireFox, il codice funziona correttamente. Inoltre, questo codice funziona bene in ciascuno dei tre browser:
setTimeout((function() {
window.location.reload();
}), 250);
Chrome e Safari hanno problemi con questo codice:
var say_hello = function() { alert("hello") };
setTimeout(say_hello, 250);
La particolarità di window.location.reload
che causa questo errore?
(non so se è utile o no, ma ecco un jsfiddle che illustra questo)
le marche Senso perfetto. Buono a sapersi. Qualche ipotesi sul perché funziona in Firefox? – goggin13
@ goggin13: interessante ... non sicuro. Ma certamente questo non è portatile. –
Giusto, solo curioso. Grazie per la spiegazione '.bind', molto istruttiva! – goggin13