jQuery点击pre标签后,将pre标签里面的内容存为文件下载下来
时间:2023年10月22日
/来源:网络
/编辑:佚名
这段代码是一个 JavaScript/jQuery 函数,主要实现的功能是在页面加载完成后,当用户点击 <pre> 元素时,将其文本内容以指定的文件类型下载到本地。
具体代码解析如下:
首先使用 $(document).ready() 方法,确保代码在文档加载完成后执行。
使用 $() 函数选择器选取所有 <pre> 元素,并且使用 .click() 方法为其绑定点击事件处理程序。
当用户点击 <pre> 元素时,触发点击事件处理程序。
在点击事件处理程序中,首先使用 $(this).text() 获取当前点击的 <pre> 元素的文本内容,并赋值给变量 content。
接着使用 $(this).attr('data-filename') 获取当前点击的 <pre> 元素的 data-filename 属性值,并赋值给变量 fileName。该属性用于指定下载文件的名称。
调用名为 downloadFile 的函数,传入 content、text/plain 和 fileName 作为参数。
downloadFile 函数定义在外层函数内部,接受三个参数:content(文件内容)、contentType(文件类型)和 fileName(文件名称)。
在 downloadFile 函数中,使用 new Blob() 创建一个 Blob 对象,其内容为 content,类型为 contentType。
创建一个 <a> 元素,并设置其 href 属性为 window.URL.createObjectURL(blob),这将为 Blob 对象生成一个临时的 URL。
设置 <a> 元素的 download 属性为 fileName,表示下载文件的名称。
将 <a> 元素的样式设置为 display: none;,即隐藏该元素。
将 <a> 元素添加到文档的 <body> 元素中。
调用 .click() 方法模拟用户点击 <a> 元素,实现文件下载。
执行完文件下载后,使用 document.body.removeChild(link) 将 <a> 元素从文档中移除。
总体来说,这段代码实现了一个简单的文件下载功能,点击页面上的 <pre> 元素时,会自动以指定的文件类型将其内容下载到本地,文件名由 data-filename 属性指定。
代码:
$(document).ready(function() {
$('pre').click(function() {
var content = $(this).text();
var fileName = $(this).attr('data-filename');
downloadFile(content, 'text/plain', fileName);
});
function downloadFile(content, contentType, fileName) {
var blob = new Blob([content], {type: contentType});
var link = document.createElement('a');
link.href = window.URL.createObjectURL(blob);
link.download = fileName;
link.style.display = 'none';
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
}
});
第二个版本:
双击后,弹窗是否下载,点击下载则下载!
$(document).ready(function() {
$('pre').dblclick(function() {
var content = $(this).text();
var fileName = $(this).attr('data-filename');
showDownloadConfirmation(content, 'text/plain', fileName);
});
function showDownloadConfirmation(content, contentType, fileName) {
if (confirm("是否下载该文件?")) {
downloadFile(content, contentType, fileName);
}
}
function downloadFile(content, contentType, fileName) {
var blob = new Blob([content], {type: contentType});
var link = document.createElement('a');
link.href = window.URL.createObjectURL(blob);
link.download = fileName;
link.style.display = 'none';
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
}
});
具体代码解析如下:
首先使用 $(document).ready() 方法,确保代码在文档加载完成后执行。
使用 $() 函数选择器选取所有 <pre> 元素,并且使用 .click() 方法为其绑定点击事件处理程序。
当用户点击 <pre> 元素时,触发点击事件处理程序。
在点击事件处理程序中,首先使用 $(this).text() 获取当前点击的 <pre> 元素的文本内容,并赋值给变量 content。
接着使用 $(this).attr('data-filename') 获取当前点击的 <pre> 元素的 data-filename 属性值,并赋值给变量 fileName。该属性用于指定下载文件的名称。
调用名为 downloadFile 的函数,传入 content、text/plain 和 fileName 作为参数。
downloadFile 函数定义在外层函数内部,接受三个参数:content(文件内容)、contentType(文件类型)和 fileName(文件名称)。
在 downloadFile 函数中,使用 new Blob() 创建一个 Blob 对象,其内容为 content,类型为 contentType。
创建一个 <a> 元素,并设置其 href 属性为 window.URL.createObjectURL(blob),这将为 Blob 对象生成一个临时的 URL。
设置 <a> 元素的 download 属性为 fileName,表示下载文件的名称。
将 <a> 元素的样式设置为 display: none;,即隐藏该元素。
将 <a> 元素添加到文档的 <body> 元素中。
调用 .click() 方法模拟用户点击 <a> 元素,实现文件下载。
执行完文件下载后,使用 document.body.removeChild(link) 将 <a> 元素从文档中移除。
总体来说,这段代码实现了一个简单的文件下载功能,点击页面上的 <pre> 元素时,会自动以指定的文件类型将其内容下载到本地,文件名由 data-filename 属性指定。
代码:
$(document).ready(function() {
$('pre').click(function() {
var content = $(this).text();
var fileName = $(this).attr('data-filename');
downloadFile(content, 'text/plain', fileName);
});
function downloadFile(content, contentType, fileName) {
var blob = new Blob([content], {type: contentType});
var link = document.createElement('a');
link.href = window.URL.createObjectURL(blob);
link.download = fileName;
link.style.display = 'none';
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
}
});
第二个版本:
双击后,弹窗是否下载,点击下载则下载!
$(document).ready(function() {
$('pre').dblclick(function() {
var content = $(this).text();
var fileName = $(this).attr('data-filename');
showDownloadConfirmation(content, 'text/plain', fileName);
});
function showDownloadConfirmation(content, contentType, fileName) {
if (confirm("是否下载该文件?")) {
downloadFile(content, contentType, fileName);
}
}
function downloadFile(content, contentType, fileName) {
var blob = new Blob([content], {type: contentType});
var link = document.createElement('a');
link.href = window.URL.createObjectURL(blob);
link.download = fileName;
link.style.display = 'none';
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
}
});
新闻资讯 更多
- 【建站知识】查询nginx日志状态码大于400的请求并打印整行04-03
- 【建站知识】Python中的logger和handler到底是个什么?04-03
- 【建站知识】python3拉勾网爬虫之(您操作太频繁,请稍后访问)04-03
- 【建站知识】xpath 获取meta里的keywords及description的方法04-03
- 【建站知识】python向上取整以50为界04-03
- 【建站知识】scrapy xpath遇见乱码解决04-03
- 【建站知识】scrapy爬取后中文乱码,解决word转为html 时cp1252编码问题04-03
- 【建站知识】scrapy采集—爬取中文乱码,gb2312转为utf-804-03