2008-09-04 17 views
70

是否可以修改confirm()函數在JavaScript中打開的消息框的標題?在JavaScript中更改confirm()的默認標題?

我可以創建一個模式彈出框,但我希望儘可能簡單地做到這一點。 我願做這樣的事情:

confirm("This is the content of the message box", "Modified title"); 

在Internet Explorer中的默認標題是「Windows Internet瀏覽器」,並在Firefox中是「[JavaScript的程序。」信息量不大。儘管我可以從瀏覽器安全角度理解你應該無法做到這一點。

回答

75

從安全角度講,這是不可能的。您可以模擬它的唯一方法是創建一個無模式對話窗口。

有許多第三方JavaScript插件可以用來僞造這種效果,因此您不必編寫所有代碼。

+3

Bootstrap.CSS有一些很好的模式 – 0xcaff 2013-10-05 17:46:29

0

你不能不幸。唯一的方法是用window.open調用來模擬這個。

4

不可能。但是,您可以使用模仿彈出窗口的第三方JavaScript庫,並且它可能會更好,並且侵擾性更小。

0

不要使用confirm()對話框......然後...輕鬆使用原型/ scriptaculous,YUI,jQuery中的自定義對話框......這裏有很多。

0

我知道這是不可能的alert(),所以我想這是不可能的確認。原因就是安全性:不允許你改變它,所以你不會將自己表現爲一些系統進程或其他東西。

0

是的,這是不可能修改它的標題。如果您仍想擁有自己的標題,則可以嘗試使用其他彈出窗口。

3

您可以隨時使用隱藏的div並使用javascript來「彈出」div並使按鈕如yes和or。很容易做的事情。

4

是的,你可以做到這一點!這是一個有點棘手的方式; )(它幾乎適用於ios)

var iframe = document.createElement("IFRAME"); 
iframe.setAttribute("src", 'data:text/plain,'); 
document.documentElement.appendChild(iframe); 
if(window.frames[0].window.confirm("Are you sure?")){ 
    // what to do if answer "YES" 
}else{ 
    // what to do if answer "NO" 
} 

享受它!

+1

最初這造成了一個錯誤。然後,在放置`if`塊超時後,它在Firefox中產生了相同的結果。在Chrome中無法使用。 http://jsfiddle.net/pzd9pmeu/ – 2014-08-23 13:28:35