winney

It is never too old to learn.

0%
winney

导出表格功能

使用window.open(url, ‘_self’)导出表格

使用window.open(url, ‘_self’)导出表格后,页面会刷新,本来存放的localStorage会被清(因为刷新页面做了清空表格筛选条件和页码)

1
2
3
4
5
6
7
8
// 监听手动刷新页面事件(按浏览器的刷新按钮||使用js方法刷新页面)
window.onbeforeunload = function(event){
// 清空表格缓存的页码数据
removeItem("pages");
// 清空表格筛选条件缓存数据
removeItem("formData");
console.log('刷新了页面')
};

解决方法:使用sessionStorage临时缓存一份

1
2
3
4
5
6
7
// 在导出表格前,先临时拷贝localStorage缓存数据到sessionStorage
// 使用window.open导出表格,会将localStorage中的formData清空
sessionStorage.setItem('formData', JSON.stringify(getItem('formData')));
sessionStorage.setItem('pages', JSON.stringify(getItem('pages')));
// 导出表格后,从sessionStorage中拷贝数据再次缓存到locaStorage
setItem('formData', sessionStorage.getItem('formData'));
setItem('pages', sessionStorage.getItem('pages'));

通过url导出服务器端文件

1
2
3
// window.location.href= url;
// 或
window.open(url, '_self')