 <p>The problem is in your second <code>setTimeout</code> call, you are invoking the function <code>win_open</code> then passing the value returned by it to <code>setTimeout</code> as the callback</p> <p>You need</p> <pre><code>function link_redirect(linkaddress) { overlay(); setTimeout(function() { overlay(); win_open(linkaddress) }, 2000); //return false; } </code></pre>