firefox和IE上的自定义确认窗口

时间:2014-05-20 11:21:48

标签: javascript internet-explorer firefox

如果表单中有未保存的数据,我想在关闭firefox(或)IE窗口时抛出自定义确认窗口。但是这个问题在chrome浏览器中没有发生。 我确实覆盖了onbeforeunload事件,但firefox抛出两个确认窗口,一个是我的自定义确认,另一个是 firefox确认窗口,我想限制firefox抛出的确认窗口我只想要我的自定义确认。我已经给出了下面的代码片段,

function unloadPage(){ 
    if(unsaved){ 
        return confirm(getMessage(kradVariables.MESSAGE_KEY_DIRTY_FIELDS)); 
    } 
} 
window.onbeforeunload = unloadPage; 

谢谢, Prem Kumar B

1 个答案:

答案 0 :(得分:0)

你只能在onbeforeunload处理程序中返回一个字符串,并且在那里忽略对confirm(),alert()和prompt()的调用。然后,返回的字符串将通过两个按钮呈现给用户,然后他将停留在页面上或离开页面。

  

自2011年5月25日起,HTML5规范声明要调用   window.showModalDialog(),window.alert(),window.confirm()和   在此事件期间可能会忽略window.prompt()方法。

https://developer.mozilla.org/en-US/docs/Web/API/Window.onbeforeunload

示例:

window.onbeforeunload = function()
    if(unsaved) { 
        return getMessage(kradVariables.MESSAGE_KEY_DIRTY_FIELDS);
    } 
};