标签: onunload

如何获取onbeforeunload事件的目标URL?

我搜索了几个小时,但我找不到解决方案.

window.onbeforeunload = warn;
Run Code Online (Sandbox Code Playgroud)

这不起作用:

function warn (e) 
{ 
   var destination = e.href;
   alert(destination );
}
Run Code Online (Sandbox Code Playgroud)

好的,所以要清除事情.如果用户单击页面本身上的链接,则很容易,因为您可以将事件处理程序添加到所有链接onclick事件,但是.我想抓住地址,用户在浏览器的网址框中输入的内容.

javascript url javascript-events onunload

52
推荐指数
3
解决办法
6万
查看次数

window.onunload在Chrome浏览器中无法正常运行.谁能帮我?

我写了这段代码

function winUnload() {
    alert("Unload Window");
    MyMethod();
}

window.onunload = function() { winUnload(); }
Run Code Online (Sandbox Code Playgroud)

此代码在IE和Firefox中运行良好.但是此代码在Chrome中无效.双方的陈述alert("Unload Window");MyMethod();不工作.

javascript browser onunload window.onunload

31
推荐指数
4
解决办法
12万
查看次数

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

我正在为我的表单构建一个故障保护,它会警告用户,如果他们离开页面,他们的表单数据将会丢失(类似于gmail所做的).

window.onbeforeunload = function () {    
        if (formIsDirty) {
            return "You have unsaved data on this form. Don't leave!";
        }
}
Run Code Online (Sandbox Code Playgroud)

上面的函数在firefox中很有用,但在IE中它由任何href链接触发,即使是链接到javascript而不是其他页面的链接.

例如....

<a href='javascript:someFunction();'>click</a>
Run Code Online (Sandbox Code Playgroud)

我想知道是否有办法绕过这个,因为我不希望用户认为他们只是点击它上面的按钮就离开了页面.我没有选择重写所有各种链接,因为它们是内置的和众多的.

有任何想法吗?

javascript jquery internet-explorer onbeforeunload onunload

26
推荐指数
2
解决办法
3万
查看次数

DOM Window卸载事件,它可靠吗?

当用户关闭选项卡/窗口/浏览器时,我可以依赖窗口卸载事件吗?

编辑:

找到IE中触发卸载事件的列表.http://msdn.microsoft.com/en-us/library/ms536973%28VS.85%29.aspx

我想知道在哪些边缘情况下不会触发卸载事件.

javascript browser dom onunload

18
推荐指数
2
解决办法
1万
查看次数

如何阻止来自iframe的弹出窗口?

我正在嵌入具有退出弹出窗口的页面.关闭页面时,它会自动启动弹出窗口.

如何在退出时禁用来自iframe的弹出式窗口?

html javascript iframe popup onunload

14
推荐指数
3
解决办法
3万
查看次数

捕获window.onbeforeunload确认对话框的结果

是否有一种方法可以捕获window.onbeforeunload确认对话框的结果,如Stack Overflow中的下一个(当离开'Ask Question'页面而不发布问题时会发生这种情况)?

这就是它在Chrome中的显示方式,我相信它在其他浏览器中略有不同,但你总是有某种形式的是/否按钮.

window.onbeforeunload确认对话框

据推测,如果事件被触发后他们仍然在违规页面上,他们选择留下来,你可以通过观察js序列来解决这个问题.但是我想知道如何确定他们是否点击了"离开此页面"

我已经实现了如下:

// concept taken from SO implementation
function setConfirmUnload(showMessage, message) {
    window.onbeforeunload = showMessage ? (message ? message : "this is a default message") : null;
}

// pseudo code
listen to changes on inputs
if any inputs fire a change event
   call setConfirmUnload(true, 'My warning message')
Run Code Online (Sandbox Code Playgroud)

请注意我在我的网站中使用jQuery.

我本质上是在尝试实现像绘图实现一样的Gmail,其中如果用户离开带有表单的页面,他们已经进行了更改而没有保存,他们会使用类似的对话框加热.如果他们选择丢弃他们的更改并离开页面,我需要清理数据库中的一些临时记录(我正在考虑一个AJAX调用,或者只是提交带有delete标志的表单)然后在他们的路上发送它们.

我的问题还涉及:

在手动刷新后获取页面后,onunload处理程序中的jQuery AJAX调用触发.我如何保证首先发生onunload?

javascript jquery javascript-events onunload window.onunload

12
推荐指数
3
解决办法
2万
查看次数

当我们使用win7或其他操作系统中的RDC关闭并重新连接到此计算机时,Win8.1将触发卸载并加载事件到WPF应用程序

这只是Win8.1中的一个奇怪问题.

众所周知,如果计算机中存在正在运行的应用程序,当我们通过远程桌面连接连接/断开/重新连接到此计算机时,应该不会对应用程序执行任何其他行为.但是,当我们关闭并使用RDC重新连接到计算机时,我们发现Win8.1将触发卸载并将事件加载到WPF应用程序.这是一种不必要的行为,可能会导致错误.

以下是稳定的重现步骤:

  1. 编写一个包含按钮的WPF应用程序,并处理该按钮的卸载和加载事件.
  2. 例如,使用RDC从Win7连接到Win8.1.
  3. 在远程桌面中,运行此WPF应用程序(加载事件将记录在a.txt中).
  4. 单击"x"关闭RDC.
  5. 再次连接到此Win8.1.
  6. 您将看到已触发卸载和加载事件.

如果WPF应用程序在Win7或Win server 2008中运行,则不会触发这些事件.

所以,我认为这是Win8.1中不需要的行为.这是Win8.1 RDP中的错误吗?或者这是一个新功能?

wpf remote-desktop reconnect onunload windows-8.1

11
推荐指数
1
解决办法
395
查看次数

外部链接所需的OnUnload消息

我需要一个消息脚本,只有当人们离开当前网页而不是当前网站时才会出现.

当人们完全离开网站时,会出现消息,他们需要按OK按钮才能保持当前页面(并取消离开网站).

当人们真正留在网站上或点击内部链接或页面时,脚本可能无法运行.

可以这样做吗?

javascript message onunload

9
推荐指数
1
解决办法
9296
查看次数

iPhone上不支持onbeforeunload事件吗?

所以,我在jQuery Mobile应用程序中有一个方便的功能,让用户知道他/她是否正在离开页面,因为这将触发注销.以简化形式:

$(window).bind('beforeunload', function() {
  return "Navigating away from this page will log you off. Are you sure you want to continue?";
});

$(window).unload(function() {
  logoff();
});
Run Code Online (Sandbox Code Playgroud)

这在我的笔记本电脑上的Safari和Chrome中都非常有用.但是,它似乎不适用于iPhone模拟器.

移动浏览器是否包含在iOS中(我知道它是Safari,但可能是不同的版本)根本不支持该beforeunload事件?这对于移动设备(特别是Android)来说是否正常?

iphone mobile jquery onbeforeunload onunload

9
推荐指数
1
解决办法
2万
查看次数

实现自定义'beforeunload'对话框最不引人注目的方法是什么?

我在谈论一个样式化的对话框,而不是默认的'beforeunload'对话框,它无法设置样式.

见Facebook: Facebook卸载图片

最不显眼的方法是什么?我首先声明了一些脚本,并且神奇地总是有效.

我想的是:

function showCustomDialog()
{
    [...]
}

var unfinished = true;

$('a').click(function()
{
    if ( unfinished )
    {
        window.showCustomDialog( { originalUrl: $(this).attr('href') } );
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

但我担心这会破坏一些情况,即一个<a>元素用于触发JS行为,或者JavaScript触发window.location.href更改.

有没有更好的,非突兀的方式?

额外的注意事项 - 他们也让它适用于后退按钮.

额外注意事项 - 显然,当它们无法控制时,它们会回退到默认对话框.

javascript jquery onbeforeunload onunload

8
推荐指数
1
解决办法
535
查看次数