点击此按钮下载课程PDF:
``` 2. 使用JavaScript代码编写实现文件下载功能的函数。 ```javascript function downloadCourse() { var url = "http://example.com/course.pdf"; // 课程PDF的URL地址 var xhr = new XMLHttpRequest(); xhr.open("GET",url,true); xhr.responseType = "blob"; // 声明响应类型为blob,表示返回二进制数据 xhr.onload = function() { if (xhr.status === 200) { // 当请求成功时 var downloadUrl = URL.createObjectURL(xhr.response); // 创建一个临时下载链接 var a = document.createElement("a"); // 创建一个a标签 a.href = downloadUrl; // 将链接地址设置为下载链接 a.download = "course.pdf"; // 设置下载文件的文件名 a.style.display = "none"; // 将a标签设置为隐藏 document.body.appendChild(a); // 将a标签添加到body中 a.click(); // 模拟点击a标签 URL.revokeObjectURL(downloadUrl); // 释放下载链接的资源 document.body.removeChild(a); // 从body中移除a标签 } }; xhr.send(); } ``` 在以上代码中,我们首先通过XMLHttpRequest对象创建一个与服务器的异步连接,并设置响应类型为blob,表示返回的是二进制数据。然后,通过监听xhr的onload事件,当请求成功时执行下面的逻辑。我们使用URL.createObjectURL方法创建一个临时下载链接,将该链接设置给一个动态创建的a标签。接下来,我们设置a标签的download属性为希望下载的文件名,并将a标签设置为隐藏。然后,将a标签添加到body中,并模拟点击a标签,触发文件的下载。最后,我们释放临时下载链接的资源,以及从body中移除a标签。 通过上述操作,用户在点击"下载"按钮后,触发downloadCourse函数的执行,从而实现了文件的下载,而无需页面跳转。 总结而言,通过使用Ajax技术,我们可以在不跳转页面的情况下,实现文件的下载功能。通过异步请求获取文件数据,并以二进制形式返回给前端,再利用动态创建的a标签,将二进制数据转化为临时下载链接,从而实现文件的下载。无论是在线课程平台还是其他网站应用,都可以通过这种方式方便地实现文件的下载功能,提供更好的用户体验。