2010-09-18 79 views
1

我工作在一箇舊的網站,我會避免搜索&更換,我想知道是否有可能reaplce所有警報按摩功能是否有可能在模態窗口中轉換所有js警報消息?

alert('some msg'); 

與jQuery的模態窗口...

我不要求怎麼做模態窗口,但如果我可以創建一個protoype更換功能警報..

感謝

+0

可能重複的[JavaScript:覆蓋alert()](http://stackoverflow.com/questions/1729501/javascript-overriding-alert) – 2010-09-18 19:27:43

+0

我不認爲這是重複的,因爲這個問題的問題(創建一些在JavaScript中阻塞的模態)與該​​線程完全不同。 – 2010-09-18 19:30:58

+0

@Matti我認爲OP正在詢問重複處理的內容,但你有一個要點 - 一個jQuery「模態」窗口不會是模態的,所以它會與alert()的本機行爲有所不同,這與 – 2010-09-18 19:33:07

回答

4

您可以覆蓋警告:

window.alert = function(txt) { 
    // Custom handler here 
} 

請注意,這將是非阻塞的。警報後的代碼將在不等待的情況下執

3

alert是特殊的事實,它阻止,直到用戶響應彈出。通常在JS中這是一個很大的禁忌,因爲如果你阻止了,你會阻止整個用戶界面。這排除了使用jQuery模式彈出窗口作爲alert的直接替換。您需要修改軟件以使用回調代替同步警報。 (大部分)JS是基於事件和單線程的,並沒有真正的解決方法。

有一個叫做showModalDialog的函數,它顯示了一個模式彈出窗口(我們都討厭這種類型),但這就是它。它起源於IE,但正如Pekka指出的那樣,它也在Firefox 3或更新版本中實現,並且基於快速Google搜索,Webkit似乎也有一些支持。儘管如此,它仍然不是一個整潔的頁內彈出窗口。

+1

自V3以來,ShowModalDialog在Firefox中可用:https://developer.mozilla.org/en/DOM/window.showModalDialog – 2010-09-18 21:50:09