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

IT技术 javascript
2021-02-10 16:29:43

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

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

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

Internet Explorer 中的默认标题是“Windows Internet Explorer”,而 Firefox 中的默认标题是“[JavaScript-program]”。不是很翔实。虽然我可以从浏览器安全的角度理解你不应该这样做。

6个回答

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

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

Bootstrap.CSS 有一些不错的模态
2021-03-25 16:29:43

是的,你可以做到!!这是一个有点棘手的方式;)(它几乎适用于 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"
}

好好享受!

哦,伙计,这是一个令人讨厌的黑客。我并不是说这有什么问题。但这必须与我迄今为止见过的一些最讨厌的黑客行为有关。你知道——为能干的精神点赞!
2021-03-27 16:29:43
这会将标题更改为“此网页上的嵌入页面说:”
2021-04-07 16:29:43
最初这造成了错误。然后,在将if块放入超时后,它在 Firefox 中产生了相同的结果。在 Chrome 中不起作用。jsfiddle.net/pzd9pmeu
2021-04-10 16:29:43

不可能。但是,您可以使用模拟弹出窗口的第三方 javascript 库,它可能看起来也会更好,并且干扰更少。

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

不幸的是你不能。唯一的方法是使用 window.open 调用来模拟这一点。