在浏览器上关闭事件

时间:2012-08-23 05:44:33

标签: javascript jquery browser

我在我的项目中使用jQuery Notification。

当我关闭浏览器时,我正在使用onbeforeunload并向用户显示确认框。

但是,客户端对默认消息框

不满意

技术上是否可以显示我的通知而不是默认通知。

jQuery通知附带问题Do you want to close ?,并带有两个按钮YESNo

当用户点击YES时,它会返回true,否则False

任何方式实现?或者一些评论/意见?

请帮帮我。

谢谢。

更新:

window.onbeforeunload = ShowModel;

function ShowModel()
{
    return show_pop_up();
}

show_pop_up()
{

return TRUE or FALSE ; 

}

3 个答案:

答案 0 :(得分:1)

  

技术上是否可以显示我的通知而不是默认通知。

没有。您可以指定消息的文本。您无法控制按钮,无法控制外观,也无法使用HTML / CSS / JS中的从头构建的UI替换UI。

在用户尝试离开页面时,您可以执行的操作存在很大的限制。浏览器旨在保护用户免受试图捕获它们的网站的侵害(您试图离开该网站?不!在您查看更多色情广告并向您提供信用卡详细信息之前,您不得离开!)。

答案 1 :(得分:1)

可以显示您的通知,而不是默认通知。试试这个:

$(window).on('beforeunload', function() {
 return 'Do you really want to close this window? Some your text...';
}); 

但确实如此,你不能用浏览器的窗口来限制用户的操作。

答案 2 :(得分:0)

从技术上讲,无法覆盖默认用户界面。

可以发生两种页面离开事件。

一种是通过单击链接在同一网站中导航。对于这种类型的页面卸载,您可以为所有菜单链接编写onclick,以便根据您的UI样式显示警告消息。但是当你点击链接时,你必须停止对beforeunload事件的调用。

第二个是使用浏览器按钮/地址栏在网站外导航。在这里,您无法覆盖默认UI。

最好的例子是Facebook。当您键入状态并在提交之前,如果您尝试在FB中导航,您将获得一个很好的UI警告消息。但是当你关闭窗口时,你将获得默认窗口。

希望这有帮助。