2016-06-15 41 views
6

我正在使用以下代码片段在页面关闭前触发警报,但Chrome似乎忽略了该消息并显示其默认消息“您是否想离开本网站?您所做的更改可能未保存”。我如何使chrome显示我的消息而不是默认的消息?页面关闭前的提醒:如何更改Chrome的默认消息?

window.onbeforeunload = function(e) { 
    e.returnValue = "A search is in progress, do you really want to stop the search and close the tab?"; 
    return "A search is in progress, do you really want to stop the search and close the tab?"; 
} 
+0

定制的消息显示在铬50 – guest271314

+0

它浏览器之间变化厂商是否允许自定义消息或没有。如果他们不这样做,你不能做任何事情 – charlietfl

回答

0

更新:已过时的Chrome:https://developers.google.com/web/updates/2016/04/chrome-51-deprecations?hl=en

尝试以下操作:

window.onbeforeunload = function (e) { 
    e = e || window.event; 

    // For IE and Firefox prior to version 4 
    if (e) { 
     e.returnValue = 'A search is in progress, do you really want to stop the search and close the tab?'; 
    } 

    // For Safari 
    return 'A search is in progress, do you really want to stop the search and close the tab?'; 
}; 

留言我在Chrome中获得(包括自定义和默认):

一搜索正在进行中,你真的想停止搜索和 关闭标签?

您确定要离开本页面吗?

来源jsFiddle

+2

在Chrome中不推荐使用:https://developers.google.com/web/updates/2016/04/chrome-51-deprecations?hl = en –

+1

@Kairat Your jsFiddle不显示自定义消息:Chrome 51.0.27 –

+0

@Dominique谢谢。这是正确的! –

1

我最近才意识到,Chrome浏览器已经改变onbeforeunload的行为。我发现了一个适用于主要浏览器的解决方法(在Chrome,Firefox和IE中测试过,由于某种原因,jsFiddle在Firefox中不起作用,但是我的网站却是这样)。使用jQuery UI,您可以在离开页面时出现一个对话窗口,该页面提供了更多关于为什么要离开当前页面的问题。

window.onbeforeunload = function (e) { 
    $('<div title="Warning!">A search is in progress, do you really want to stop the search and close the tab? If not, choose "Stay on page" on the browser alert.</div>').dialog({ 
     modal:true, 
     close: function(){$(this).dialog('destroy').remove();} 
    }); 
    return "Random message to trigger the browser's native alert."; 
} 

jsFiddle here

+4

不适用于Chrome 51以上版本。 –