2016-07-07 115 views
0

我正在发出一条消息,弹出10秒后,单击“确定”后用户被重定向到一个不同的页面。到目前为止,我有这个。Javascript timed弹出警报与位置.href

if (setTimeout(function() { !alert("my message"); }, 10000)); { 
location.href = "/some/url" 
} 

它只是在页面加载时重定向,没有消息,没有“确定”单击。任何想法如何得到这个工作?

+0

因为页面退出并且其他代码不会运行所有在if中的超时的id是truthy。没有等待。 – epascarello

+0

'setTimeout'返回一个数字,并且是异步的。 – gcampbell

+0

使用[window.confirm](https://developer.mozilla.org/en-US/docs/Web/API/Window/confirm)方法 – nem035

回答

1

我想应该是这样的。

setTimeout(function() { 
    if (window.confirm("Go?")) { 
     location.href = "/some/url"; 
    } 
}, 10000); 
+0

这让我觉得有用!谢谢。 的setTimeout(函数(){ \t \t如果(window.alert( “走?”)){ \t \t \t \t location.href = “/一些/ URL”! \t \t \t} \t \t} ,10000); – JayyCodez

+0

@JayyCodez if(!window.alert(“Go?”))'使零感 – epascarello

0

setTimeout返回超时的ID。所以你只是检查id是否真实。该代码没有等到用户单击该按钮。

如果您想等到用户点击警报的好处之后,则需要在警报之后放置location.href行。

window.setTimeout(function() { 
    alert("x"); 
    window.location.href = "https://stackoverflow.com/a/b/c"; 
}, 10000);