出于辅助功能的原因,对于我的Chrome扩展程序,我需要能够使用页内HTML替代品替换所有标准window.onbeforeunload
弹出式窗口。我知道如何创建替代骨架,这是微不足道的。
我知道这里的基本想法是window.onbeforeunload = {my substitute code}
。
我不知道该怎么做是从页面发出的每个确认窗口中获取文本和代码,并将其引导到我的替代品中,以便显示与原始弹出窗口中相同的消息并单击我的替换confirm
和leave page
(或其他)按钮产生与原始弹出窗口相同的结果。
如何做到这一点?
实施例
您已安装我的扩展程序(不要问它的用途是什么,无关紧要)。
你开始在StackOverflow上写一个问题,然后意识到你已经知道了答案,然后去关闭标签。
通常情况下会出现一个确认窗口,询问您是否确定要离开该页面。
但是由于我的扩展,相反,整个页面的HTML被推了一下,以便为临时HTML确认框提供空间,显示相同的文本和相同的两个按钮,点击时产生相同的两个结果,所有在页。没有弹出窗口。
答案 0 :(得分:2)
您正在谈论的功能是window.onbeforeunload
事件,不幸的是,它可以自定义的唯一方法是为用户提供自定义字符串消息,因为滥用的可能性非常高。
在msdn上为Internet Explorer个州的api引用:
对话框中显示的默认语句“您确定吗? 你想离开这个页面吗? ...按OK继续,或 取消保留在当前页面上。“,不能删除或更改。
我认为这意味着对话框本身无法更改,您所能做的就是提供额外的特定于上下文的消息。我无法找到Chrome的相同参考,但它似乎是相同的故事。
window.onbeforeunload = function() {
//all you can do is provide a message..
return "you have unsaved changes, if you leave they will be lost";
}