我想在用户使用jQuery放弃特定页面时执行一个动作方法.
该页面包含以下代码:
<script type="text/javascript">
$(window).unload(function () {
alert("Handler for .unload() was called.");
});
</script>
Run Code Online (Sandbox Code Playgroud)
当我离开页面时,我从未看到预期的警报.
window.addEventListener("onbeforeunload",function() {return "are you sure?"});
Run Code Online (Sandbox Code Playgroud)
^这似乎不起作用... ...页面将关闭而不显示确认框...
我意识到......
window.onbeforeunload = function() {return "are you sure?"}
Run Code Online (Sandbox Code Playgroud)
会工作,但我想添加功能(例如添加许多事件监听器到"onbeforeunload"功能)不完全重写功能!
javascript events google-chrome onbeforeunload addeventlistener
我在可编辑的表格中显示某些记录.当用户在编辑弹出的记录时尝试重新加载表时,会警告有关未保存数据的记录.
function cancelProcess()
{
if(noEditedRecords !=0)//number of edited records in the table
{
var processConfirmation = confirm("You've Edited "+ noEditedRecords +" Records. Are You sure to undo the Changes made?");
if (processConfirmation ==true){
window.onbeforeunload = null;
window.location.reload();
}
}
}
Run Code Online (Sandbox Code Playgroud)
当他单击"确定"重新加载页面时,Firefox会提示为
要显示此页面,Firefox必须发送将重复之前执行的任何操作(例如搜索或订单确认)的信息.
在Chrome中打开同一页面时,不会出现此类提示.
我试图通过设置避免这种情况window.onbeforeunload = null;,但仍然会出现提示窗口.
我也试过改变Firefox配置:
browser.sessionstore.postdata
根据Mozilla支持页面中的建议将0更改为1.
但没有任何效果..如何阻止提示?
我在"index.template.html"文档中使用javascript在Flex4应用程序中工作.我有一个问题是能够使用Firefox的onbeforeunload.该应用程序在IE中完美运行,但完全相同的一个不适合FF.(见下文)
<script type="text/javascript">
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)
{
}
</script>
Run Code Online (Sandbox Code Playgroud)
从我发现的,FF似乎没有注册onbeforeunload事件,所以我发现使用的流行的东西是与JQuery绑定.因此,我删除了上面的代码并将其替换为以下代码,但是当用户尝试在IE和FF中离开页面时,它不会显示弹出窗口.任何似乎都在使用JQuery的人似乎都在做同样的事情,所以我不知道发生了什么.
<script type="text/javascript">
$(window).bind("beforeunload",function(event){
return "This should create a pop-up";
});
</script>
Run Code Online (Sandbox Code Playgroud)
最终在第一段代码中调用"flex.unloadMethod"会很好,但暂时我只是试图让弹出窗口工作,所以我知道我在正确的轨道上.任何见解将不胜感激.
我正在使用netadictos在此处发布的代码.我想要做的就是当用户离开或关闭窗口/标签时显示警告.
netadictos发布的代码似乎在IE7,FF 3.0.5,Safari 3.2.1和Chrome中运行良好,但它在Opera v9.63中不起作用.有没有人知道在Opera中做同样事情的方式?
Thx,Trev
假设我有两页.其中一个包含另一个内部为iframe.如果您在父页面上订阅onbeforeunload事件,则在iframe处于焦点时关闭选项卡时不会触发此事件.我想这是一个写在这里的错误: Google Chrome问题
但我提到,例如,谷歌文档处理这种情况.有谁能给我一个解决方案?重要提示我无法实际访问iframe内容,因为它是第三方html编辑器(WYSIWYG).
jQuery onbeforeunload无法在Chrome和Firefox中运行.它在IE和Safari中正常工作.
jQuery(window).bind('onbeforeunload' ,function () {
mymethod();
});
Run Code Online (Sandbox Code Playgroud)
上面的代码在IE和Safari中正常工作,但在Firefox和Chrome中没有.
将侦听器添加到beforeunload事件的全局窗口对象时,IE 11(和10)不会像Chrome和Firefox那样运行.
通常,如果不希望对话框提示用户,则返回将用于填充浏览器本机对话框提示的字符串,或者返回空字符串.
但是,在IE 11中,如果返回空字符串和/或将其设置evt.returnValue为空字符串,则会打开浏览器本地的"Navigate Away"对话框,并提示用户确认它们可能会丢失未保存的更改.
有没有办法(不必删除事件监听器)让对话框没有出现在IE 11中?
看看我的JSFiddle(在IE中 - 因为它应该在Chrome,Firefox和Safari中正常工作).
这是小提琴的来源:
var isDirty = false;
var message = '** You have unsaved changes. **'
window.addEventListener('beforeunload', function(evt){
if(isDirty) {
evt.returnValue = message;
return message;
}
delete evt.returnValue;
return "";
});
Run Code Online (Sandbox Code Playgroud) 我已经使用这段代码已经有一段时间了,它一直运行到昨天:
window.onbeforeunload = function() {
return "¡Atención! Si continúas no podrás volver atrás y podrías perder datos. Revisa todos los campos y termina el trabajo antes de moverte de esta página. ¿Seguro que quieres continuar?";
}
Run Code Online (Sandbox Code Playgroud)
现在的问题是Chrome显示:
但Edge表明它是正确的方式:
我究竟做错了什么?
注意:语言不是问题,因为我尝试过英语和西班牙语.
javascript google-chrome onbeforeunload javascript-events microsoft-edge
我试图在到达订单确认页面后关闭浏览器,它会发出如下所示的警报。这会给用户造成误解,认为他的更改尚未保存。所以我想避免这个弹出窗口。
我知道此警报是由于beforeunload事件而触发的。我尝试过的解决方案:
window.addEventListener("beforeunload",(event)=>{
return null;
})
Run Code Online (Sandbox Code Playgroud)
和
window.onbeforeunload=null;
Run Code Online (Sandbox Code Playgroud)
我没有在我的应用程序中使用 jQuery。有没有其他方法可以禁用此事件的触发。
我尝试过的链接:
如何禁用“您所做的更改可能不会保存”。对话框(Chrome)?
他们都不为我工作。
如果没有 jQuery,我怎样才能实现这个目标?我感到困惑的是如何处理这个事件,以便它不显示弹出窗口。
我使用的是 Chrome 版本 101.0.4951.64
onbeforeunload ×10
javascript ×8
jquery ×3
events ×2
angular ×1
dom-events ×1
firefox ×1
flex4 ×1
iframe ×1
opera ×1
reload ×1
wysiwyg ×1