如何显示"您确定要离开页面吗?" 当用户实际尝试关闭页面时(单击浏览器窗口或选项卡上的X按钮),当他试图离开页面时(单击另一个链接).
当用户尝试关闭页面时,我的客户希望显示一条消息"您确定要离开页面吗?您的购物车中仍有商品."
不幸的是$(window).bind('beforeunload'),只有当用户关闭页面时才会触发.
jQuery的:
function checkCart() {
$.ajax({
url : 'index.php?route=module/cart/check',
type : 'POST',
dataType : 'json',
success : function (result) {
if (result) {
$(window).bind('beforeunload', function(){
return 'leave?';
});
}
}
})
}
Run Code Online (Sandbox Code Playgroud) 我有一个小问题.我试图抓住窗口的OnUnLoad事件并询问确认问题,如果用户决定他们想要保持那么好,如果他们想离开页面,那么他们将丢失所有未保存的数据.这是问题......
我正在使用jQuery UI对话框,当我在页面上放置以下代码时,我打开了Dialog,当我单击浏览器上的后退按钮时,它永远不会弹出msgbox.它只刷新页面:
<script type="text/javascript">
$(window).bind('beforeunload', function() {
alert('you are an idiot!');
}
);
</script>
Run Code Online (Sandbox Code Playgroud)
我正在使用的解决方案是这里的帖子.再次,如果我没有打开jQuery UI对话框,msgbox将显示正常.如果我这样做,那么它不会显示msgbox并只刷新页面.
有任何想法吗?
我有onbeforeunload事件的自定义消息,并且运行良好但我今天注意到它不再显示我的消息了.相反,它显示"您所做的更改可能无法保存"
window.onbeforeunload = function () {
return 'Custom message'
}
Run Code Online (Sandbox Code Playgroud)
任何人都可以让我知道如何解决它?
难道window.onbeforeunload()火在所有浏览器?我需要一个至少由IE6和FF3.6支持的onbeforeunload功能.
对于IE,onbeforeunload()似乎只有IE9支持
嗨,我想自定义弹出窗口,是否有任何简单的方法可以做到这一点?
我使用的是简单的jQuery
$(document).ready(function() {
var myPopUp = $('#pop-up').css('display', 'block');
$(window).bind('beforeunload', function(){
return 'load my pop up here instead of the default browser message';
});
});
Run Code Online (Sandbox Code Playgroud)
我弹出的html是默认隐藏的
<div id="pop-up">
<h2>Are you sure wanna leave</h2>
<a href="#">Leave</a>
<a href="#" class="close">Stay</a>
</div>
Run Code Online (Sandbox Code Playgroud)
谢谢
我没有这方面的实际用例,但我很好奇,是否有办法做出反应(回调),如果用户在触发window.onbeforeunload时点击"停留在此页面上".
function warning(){
if(true){
console.log('leaving');
return "You are leaving the page";
}
}
window.onbeforeunload = warning;?
Run Code Online (Sandbox Code Playgroud) 我对我的申请有疑问.每当用户意外关闭浏览器窗口时,我都希望在此之前进行一些清理操作.我已经使用过onunload事件,但问题是这个事件有时会被解雇,有时却没有.我该怎么办,是否有更好的方法来处理这类问题.
我目前正在建立一个注册页面,如果用户离开,我想弹出一个CSS框询问他是否确定.我可以使用确认框来完成这个壮举,但客户说他们太难看了.我尝试过使用unload和beforeunload,但两者都无法阻止页面被重定向.使用那些事件,我返回false,所以也许有一种方法可以取消而不是返回false?
我有另一个解决方案是将它们重定向到另一个有我的弹出窗口的页面,但问题是如果他们确实想要离开页面,并且这不是一个错误,他们会丢失他们最初尝试的页面要去.如果我是用户,那会激怒我.
最后的解决方案是真正的弹出窗口.我唯一不喜欢的是主要的winow将有他们的目标页面,而pop将有我的页面.在我看来,它看起来不相干.最重要的是,我会担心弹出窗口拦截器.
只是为了添加每个人的评论.我知道阻止用户退出页面是令人恼火的,我认为不应该这样做.现在我正在使用确认框.发生的事情是它实际上并没有"阻止"用户离开,如果用户对注册有疑问,客户实际想要做的是提出建议.如果用户处于注册过程的中途并且由于某种原因离开,则客户希望向用户提供免费优惠券到研讨会(该客户正在销售研讨会)以希望说服用户注册.客户的印象是,由于用户已经在表单上,他正在考虑注册,因此他正在注册的内容可能是让用户注册的最终推动.理想情况下,我不必阻止用户离开,什么会一样好,而且在我看来更好的是我可以暂停卸载过程.也许睡觉命令?我不需要将用户留在页面上,因为他们将离开去任何其他页面.
此外,正如人们所说,这是一个非常可怕的标题,所以如果有人知道一个更好的标题,我真的很感激它,如果他们可以将标题改为不被垃圾邮件发送者邀请的东西.
我们有一个典型的Web应用程序,它本质上是一个具有大量屏幕的数据输入应用程序,其中一些具有一定程度的复杂性.我们需要提供标准功能,以确保用户忘记在导航或关闭浏览器之前单击"保存"按钮,他们会收到警告并可以取消(但仅当存在未保存或脏数据时).
我知道我必须做的事情的基础 - 实际上我确信在这些年之前我已经完成了所有工作(与onbeforeunload相关,跟踪页面的"脏"状态等等... )但是在我再次开始编码之前,是否有人对已经存在的图书馆(免费或其他)有一些建议会有所帮助?
我希望在用户尝试以任何方式完成订单流程之前实施警告,当然其他方式是在付款按钮之后.
像这样的东西:
<script type="text/javascript">
window.onbeforeunload = function(){
return 'You must click "Buy Now" to make payment and finish your order. If you leave now your order will be canceled.';
};
if document.getElementsByClassName('eStore_buy_now_button').onclick = function(){
};
</script>
Run Code Online (Sandbox Code Playgroud)
我确信这在某些方面是有害的,但这是我能说明我正在尝试的最佳方式.我知道有些浏览器会显示默认文本而不是我写的实际警告,这很好.
一些注意事项,我宁愿使用普通的旧JS而不是为这一个简单的任务加载jQuery.页面上没有任何设置,因此它是一个简单的离开页面或单击"立即购买"操作.
更新:
我向你保证,这不是为了我,而是为了用户的利益.虽然它明确地解释了(做了什么),但我认为用户正在开枪并且在流程真正完成之前离开即时满足,忽略了消息的那种心态.这是一个简单的两步流程,他们提交项目的详细信息,然后付款.无论出于何种原因,他们提交详细信息,然后在50%的时间内没有完成付款.然后他们会跟进"所以,你在做这个项目还是什么?" 然后我必须解释"你从未完成订单." 他们跟进了"哎呀,在这里,你走了."
不幸的是,我会把它当作营销和网页设计101.规则#1,人们都是愚蠢的.不要采取粗鲁或悲观的态度.基本上,这个想法是假设每个人都对你的设计,教学都很愚蠢,这样你就可以轻松做出一个五岁的孩子可以做到的事情.我完全同意不让用户成为人质.但是,此页面仅在他们启动的预定订单流程中间到达(此页面永远不会以浏览方式到达).所以我认为这是一个非常合理的用例,你可以从中保存一个常见的用户错误.一个不懂技术的客户人群,所以他们真的需要这样的指导.