警戒

2013-06-19 66 views
1

檢測確定我用這個代碼:警戒

<script type="text/javascript"> 
    function finish() 
    { 
    alert("Inserted!"); 
    } 
</script> 

我要當「OK」警報的用戶點擊,它進入另一個PHP頁面。

  • 當用戶單擊確定時,我該如何不予理會?
  • ,我怎麼能鏈接到另一個網頁在一般我用這樣的方式:

    <button type="submit" onclick="window.open('home.php')"> Insert </button> 
    

    但在警報例如沒有按鍵!

感謝

回答

8

alert()正在阻塞:當顯示alert()時,瀏覽器將停止執行任何Javascript代碼。 alert()之後的下一行代碼只有在警報框被清除時纔會執行。

因此,您不需要做任何特別的事情來判斷警報是否已被清除;只需將其餘代碼在alert()之後運行即可。

+0

我想是「模態」,你想說「阻止」 – Prusse

+0

@Prusse - 它也是模態,但是,「阻塞」是它的具體方面,我試圖強調。 – Spudley

2

沒有結果alert。您可以使用window.location重定向。

function finish() 
    { 
    alert("Inserted!"); 
    window.location = 'newpage'; 
    } 
+0

它與MR的解釋一起工作。 Spudley!謝謝! – sabbagh

1

當用戶點擊OK哪能undersatand?

alert()被阻塞,腳本執行會在顯示時暫停。當用戶單擊確定時,該腳本將繼續運行。只需在警報聲明之後放置任何其他代碼即可。

以及我如何鏈接到另一頁?

您可以設置location到一個新的URL ...

location = "http://example.com/"; 

...但總體來講,你會過得更好運行功能作爲常規鏈接的點擊event handler

0

您可以撥打window.location=URL重定向。

警報是模式,它只是提供信息,然後被解僱。警報消息解除後腳本將繼續執行。

如果希望用戶讀取警告消息後只是重新定位,你可以使用:

function finish() { 
    alert("When you click OK you will go to a new page."); 
    window.location = "http://www.yoururl.com"; 
} 

在另一方面,確認爲用戶提供了一個問題,基於用戶的響應返回真/假。這可能是你應該使用的。

在這種情況下,您的函數可以是這樣的:

function finish() { 
    var continue = confirm("Finish and go to the next page?"); 
    if (continue) { 
    window.location = "http://www.yoururl.com"; 
    } 
} 

無論哪種完成功能,只需將其連接到然而按鈕你想要的。最直接的方法是,就像你在你的問題做:

<button type="submit" onclick="finish()"> Insert </button> 

但是請注意,如果你的按鈕是一個形式,你綁定的onclick的形式實際上將是,除非你無論如何提交綁定到提交事件並阻止它。