2016-07-07 83 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);