Tag: onbeforeunload

没有时间在窗口卸载时发送get请求

我想在用户关闭浏览器窗口时通知服务器。 我尝试了所有的 $(window).bind(“beforeunload”, function() { $.get(“${contextPath}/notify?direction=logout”); }); 和 $(window).unload( function() { $.get(“${contextPath}/notify?direction=logout”); }); 和 $(window).unload(function() { $.ajax({ url: “${contextPath}/notify?direction=logout” }); }); 但是,尽管事实上在手册中说它可能应该这样做,但它们都不能很好地工作。 在Firefox中,我只在窗口关闭时没有通知,但在页面刷新时有一些通知。 在Chrome中我没有。 我试图在Firebug或Chrome开发者工具中跟踪这个脚本,发现如果跟踪它就会开始工作! 所以我认为它不能正常工作,因为它没有时间在窗口关闭或导航之前发送请求。 这是真的? 如何完成我的任务? 解 这工作: $(window).bind(“beforeunload”, function() { $.ajax({ async: false, url: ‘notify’ }); } );

IE9在窗口打开时触发onb​​eforeunload事件

我正在使用JFileUpload applet构建一个站点,并希望以某种方式处理页面的关闭。 取消applet时会调用JSTransferCancelled。 以下代码是我用来处理这些事件的代码,它适用于IE以外的所有浏览器。 function JSTransferCancelled(){ bCancel=false; $.post(“cancel.php”); self.close(); } $(window).load(function(){ $(window).bind(‘beforeunload’,function(){ document.uploader.setEnabled(false); if(bCancel){ document.uploader.cancel();} }); }); 我在主站点的新选项卡中打开包含上传器的页面,并在取消上传时关闭它。 但是,当我在IE中打开选项卡时,我立即收到警告说The webpage you are viewing is trying to close this tab. Do you want to close this tab? [OK] [Cancel] The webpage you are viewing is trying to close this tab. Do you want to close this […]

为什么jQuery有时会覆盖window.onbeforeunload?

我有jQuery(1.6.x)的奇怪问题。 我在我的页面上有这个简单的电话: window.onbeforeunload = function() { return ‘Are you sure ?’; }; 但它不起作用,因为正如我发现的那样,jQuery会覆盖window.onbeforeunload的内容。 在JS控制台中,我可以看到window.onbeforeunload包含一段jQuery代码: function( e ) { // Discard the second event of a jQuery.event.trigger() and // when an event is called after a page has unloaded return typeof jQuery !== “undefined” && (!e || jQuery.event.triggered !== e.type) ? jQuery.event.handle.apply( eventHandle.elem, arguments ) : […]

在注销时自动保存“卸载”事件和ajax调用:操作顺序导致问题

我在在线编辑器上使用AutoSavefunction。 当用户离开页面(使用unload或beforeunload事件检测到)时,我发送一个AJAX请求(async = false)来保存数据。 我有时在Chrome浏览器中遇到问题,因为有一系列事件正在发生: 事件被解雇 请求发送 页面更改,用户断开连接 请求分析服务器=>问题! 请求浏览器收到的响应 当然,由于用户已断开连接,因此无法处理“保存”请求。 有没有一种与所有浏览器兼容的方法,在页面实际更改之前等待AJAX​​调用的响应?

如何阻止windows.onbeforeunload被IE中的javascript:href链接触发?

我正在为我的表单构建一个故障保护,它将警告用户,如果他们离开页面,他们的表单数据将丢失(类似于gmail所做的)。 window.onbeforeunload = function () { if (formIsDirty) { return “You have unsaved data on this form. Don’t leave!”; } } 上面的函数在firefox中运行得很好,但在IE中它由任何href链接触发,即使是链接到javascript而不是其他页面的链接。 例如…. click 我想知道是否有办法绕过这个,因为我不希望用户认为他们只是点击它上面的按钮就离开了页面。 我没有选择重写所有各种链接,因为它们是内置的和众多的。 有任何想法吗?

只有在体内单击鼠标一次后,Onbeforeunload才会起作用

经过漫长的一天试图找到解决这个问题的方法后,我不断遇到同样的问题。 基本上,我有一个网站,如果用户点击“浏览器刷新”按钮,我想弹出一个“你确定”的警告框,其中包含选项“重新加载”和“不重新加载”(基本上,浏览器返回的内容)。 令人惊讶的是,它在IE中运行得很好。 但是在chrome或firefox中,刷新通常没有弹出窗口。 弹出窗口仅在我点击身体某处然后单击“浏览器刷新”按钮时才会出现。 我已经有以下和其他许多类似的替代方案: window.onbeforeunload = function (e) { e = e || window.event; // For IE and Firefox prior to version 4 if (e) { e.returnValue = ‘Any string’; } // For Safari return ‘Any string’; }; 我尝试使用’trigger(’click’)’,’。click()’事件模拟页面加载时的点击事件。 但是,直到我自己(身体上)点击身体后仍然无效。 我创造了一支短笔,它复制了我面临的问题。 任何帮助将非常感谢。 提前致谢。

使用onbeforeunload确认时是否可以捕获用户的答案?

我需要提醒用户,他们在离开页面时会丢失信息。 使用onbeforeunload事件可以轻松完成此操作。 我的问题是,如果用户决定离开,我想采取一些行动。 这是一个例子(我正在使用jquery,因为它仍然是加载的): $(window).on(‘beforeunload’, function(e){ return “Do you really want to leave?”; }); 我想做的是这样的事情(这段代码不起作用,我知道,这只是一个例子来说明我正在尝试做什么): $(window).on(‘beforeunload’, function(e){ // Ask for user confirmation var bUserAnswer = confirm(“Do you really want to leave?”); if(bUserAnswer) { // Do something… } else { // Do something else… } // Close everything if the user decides to leave… return bUserAnswer; […]

window.onbeforeunload可能会多次触发

仅仅因为你没有看到用于某个function并不意味着它没用。 Stack Exchange网络,GMail,Grooveshark,Yahoo! Mail和Hotmail使用onbeforeunload提示来防止/警告用户在开始编辑内容后离开页面。 哦,是的, 几乎每个接受可保存用户输入数据的桌面程序都使用这种提示用户离开前的UX模式。 我有一个与此类似的function: window.onbeforeunload = function(){ // only prompt if the flag has been set… if(promptBeforeLeaving === true){ return “Are you sure you want to leave this page?”; } } 当用户尝试离开页面时,浏览器会向他们显示离开或停留在页面上的选项。 如果用户选择“保留此页面选项”,然后在页面完全卸载之前再次快速单击链接,则会再次触发对话框。 这个问题有什么万无一失的解决方案吗? 注意:以下不是解决方案: var alreadyPrompted = false; window.onbeforeunload = function(){ // only prompt if the flag has been set… if(promptBeforeLeaving […]

对于IE和FF使用JQuery或onbeforeunload

我在“index.template.html”文档中使用javascript在Flex4应用程序中工作。 我有一个问题是能够在Firefox上使用onbeforeunload。 该应用程序在IE中完美运行,但完全相同的不适合FF。 (见下文) window.onbeforeunload=before; window.onunload=after; function before(evt) { var flex=document.$(application)||window.$(application); flex.unloadMethod(); //custom method to log out the user } function after(evt) { } 从我发现的,FF似乎没有注册onbeforeunload事件,所以我发现使用的流行的东西是与JQuery绑定。 因此,我删除了上面的代码并将其替换为下面的代码,但是当用户尝试在IE和FF中离开页面时,它不会显示弹出窗口。 任何似乎都在使用JQuery的人似乎在做同样的事情,所以我不知道发生了什么。 $(window).bind(“beforeunload”,function(event){ return “This should create a pop-up”; }); 最终在第一段代码中调用“flex.unloadMethod”会很好,但暂时我只是想让弹出窗口工作,所以我知道我在正确的轨道上。 任何见解将不胜感激。

取消onbeforeunload事件处理程序?

我有一个onbeforeunload事件处理程序附加到页面,每次页面重新加载/重定向时执行。 window.onbeforeunload = function() { console.log(“do something”);} 我不想在测试期间运行此脚本。 我想在我自己的测试环境中禁用它。 有没有办法取消绑定这个onbeforeunload事件? 我使用JavaScript,jQuery作为框架,所以jQuery中的答案会很好。