如何取消下载文件的beforeunload事件

js/jQuery中可以为页面绑定beforeunload事件,关闭、刷新、跳转页面时都将触发。

但如果想通过location.href的形式下载文件,它也会触发beforeunload事件。

取消的方法很简单:点击按钮时让window不再监听beforeunload事件,等点击完按钮后再重新为window绑定beforeunload事件。

代码如下:

$("button#download").mousedown(function(){
  $(window).off(‘beforeunload‘);
  // 其余的下载代码
}).mouseleave(function(){
  $(window).on(‘beforeunload‘,windowBeforeUnload);
});

$(window).on(‘beforeunload‘, windowBeforeUnload);

function windowBeforeUnload(){
  return "请注意保存您编辑的内容!";
}
时间: 2024-12-20 23:28:50

如何取消下载文件的beforeunload事件的相关文章

多线程下载文件(支持暂停、取消、断点续传)

多线程下载文件(支持暂停.取消.断点续传) 多线程同时下载文件即:在同一时间内通过多个线程对同一个请求地址发起多个请求,将需要下载的数据分割成多个部分,同时下载,每个线程只负责下载其中的一部分,最后将每一个线程下载的部分组装起来即可. 涉及的知识及问题 请求的数据如何分段 分段完成后如何下载和下载完成后如何组装到一起 暂停下载和继续下载的实现(wait().notifyAll().synchronized的使用) 取消下载和断点续传的实现 一.请求的数据如何分段 首先通过HttpURLConne

安卓使用WebView下载文件,安卓实现软件升级功能

因为调用系统默认浏览器下载更新,造成用户体验很不好,所以决定在webview中直接下载系统更新,然后直接安装. 因为要下载,所以必须用webview,联网权限这里不说了,直接写在manifafest中. 我们常用的下载都是调用Android默认浏览器 这样写 1.设置WebView的DownloadListener: webView.setDownloadListener(new MyWebViewDownLoadListener()); 2.实现MyWebViewDownLoadListene

C#实现http协议支持上传下载文件的GET、POST请求

C#实现http协议支持上传下载文件的GET.POST请求using System; using System.Collections.Generic; using System.Text; using System.Net; using System.Net.Sockets; using System.Collections; using System.IO; using System.Text.RegularExpressions; using RE = System.Text.Regula

wp8通过WebClient从服务器下载文件

通过WebClient从Web服务器下载文件,并保存到wp8手机应用程序的独立存储. 我们可以通过利用webClient_DownloadStringCompleted来获得下载完成所需要的时间,用Stopwatch得到下载的总时间. 通常我们都将上传.下载作为异步事件来处理,以便不阻止主线程. String url = "http://172.18.144.248:8080/upload/" + filename; WebClient client = new WebClient()

如何用 JavaScript 下载文件

简介 我们知道,下载文件是一个非常常见的需求,但由于浏览器的安全策略的限制,我们通常只能通过一个额外的页面,访问某个文件的 url 来实现下载功能,但是这种用户体验非常不好.幸好,HTML 5 里面为 <a> 标签添加了一个 download 的属性,我们可以轻易的利用它来实现下载功能,再也不需要用以前的笨办法了. 原理 我们先看看 download 的使用方法: <a href="http://somehost/somefile.zip" download=&quo

Afinal载入网络图片及下载文件用法

Afinal高速开发框架使用起来很方便.以下将解说怎样利用Afinal载入网络图片及下载文件: 先看效果图: 注意:使用Afinal前需加入Afinal的jar,能够在这里下载:http://download.csdn.net/detail/baiyuliang2013/7313587 当中包含了Afinal的源代码和jar,使用时仅仅需加入jar包就可以.在学习阶段也能够直接加入源代码到你的项目中.能够更深入的学习Afinal. 看代码: activit_main.xml: <Relative

android开发步步为营之67:使用android开源项目android-async-http异步下载文件

android-async-http项目地址 https://github.com/loopj/android-async-http,android-async-http顾名思义是异步的http请求,不过它也支持同步请求的,本文主要使用了android-async-http做异步请求下载文件.每当app需要更新新版本的时候,就需要用到下载功能的,经研究android-async-http这个第三方开源项目还是挺好用的,这里介绍给大家.     1.下载类DownloadManager.java

android命令模式IntentService 远程下载文件

服务可用在一下情景: 1,用户离开activity后,仍需要继续工作,例如从网络下载文件,播放音乐. 2,无论activity出现或离开,都需要持续工作,例如网络聊天应用. 3,连接网络服务,正在使用一个远程API提供的服务. 4,定时触发的任务 1.因为IntentService是Service子类,所以也需要在manifest中声明服务 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns

WebClient异步下载文件

namespace ConsoleAppSyncDownload{    class Program    { static void Main(string[] args)        {            WebClient webClient = new WebClient();            //Console.Write("输入下载文件地址:");            //var s = Console.ReadLine();            Conso