更改JavaScript中confirm()的默认标题?


79

是否可以修改在JavaScript中打开Confirm()函数的消息框的标题?

我可以创建一个模式弹出框,但是我想做到这一点尽可能的简单。我想做这样的事情:

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

Internet Explorer中的默认标题是“ Windows Internet Explorer”,而在Firefox中,默认标题是“ [JavaScript-program]”。不是很翔实。尽管从浏览器安全性的角度来看我可以理解,但您不应该这样做。

Answers:


85

正如您所说,从安全角度来看,这是不可能的。您可以模拟它的唯一方法是创建一个无模式的对话框窗口。

您可以使用许多第三方javascript插件来伪造此效果,因此不必编写所有代码。


3
Bootstrap.CSS有一些不错的模态
0xcaff 2013年

7

是的,你可以做到!这有点棘手;)(几乎可以在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中不起作用。jsfiddle.net/pzd9pmeu
Oliver Moran

2
这会将标题更改为“此网页上的嵌入式页面上显示:”
ZioCain

1
哎呀,那真是令人讨厌。我并不是说这有什么问题。但这必须与到目前为止我所见过的一些最讨厌的骇客有关。您知道吗?
cmc

4

不可能。但是,您可以使用模仿弹出窗口的第三方javascript库,它看起来也可能更好,并且不那么麻烦。


3

您始终可以使用隐藏的div并使用JavaScript来“弹出” div并具有“是”或“否”之类的按钮。很容易做到的事情。


0

您不能不幸。唯一的方法是使用window.open调用对此进行模拟。


0

然后不要使用confirm()对话框...易于使用的原型/脚本,YUI,jQuery等自定义对话框...那里有很多。


0

我知道这对于alert()是不可能的,所以我猜也无法确认。原因是安全性:不允许您对其进行更改,因此您不会以某些系统进程或其他任何形式出现。


0

是的,这是不可能修改其标题的。如果您仍然想拥有自己的标题,则可以尝试使用其他弹出窗口。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.