火狐浏览器直接查看导出的文件兼容问题
- 用火狐浏览器
- 导出scv文件
- 选择直接打开
- 扩展名.scv后自动拼接了.xlsx ,且用xlsx打不开
代码如下:
``
exportF () {
if (this.auditLoadingObj && this.auditLoadingObj[this.key]) return false
this.$store.commit('user/CHANGE_LOADINGOBJ', { [this.key]: true })
let filter = this.getParams()
projectApi
.getAuditExport(filter, this.namespaceid)
.then(res => {
let params = {
res,
type:
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
Suffix: 'csv',
title: '审计'
}
downloadAPI(params)
this.$store.commit('user/CHANGE_LOADINGOBJ', { [this.key]: false })
})
.catch(res => {
this.$store.commit('user/CHANGE_LOADINGOBJ', { [this.key]: false })
})
}
``
export function downloadAPI (params) {
const res = params.res
const type = params.type
const Suffix = params.Suffix
const title = params.title
const noDate = params.noDate ? params.noDate : false
// 创建blob
const blob = new Blob([res], { type: type })
// 创建时间戳
let date = resetDateTime(new Date().getTime()).replace(/[- | :]/g, '')
if (noDate) {
date = ''
}
// 创建下载的链接
const downloadElement = document.createElement('a')
const href = window.URL.createObjectURL(blob)
// 判断浏览器
if (myBrowser() === 'IE' || myBrowser() === 'Edge') {
// IE专属下载方法
navigator.msSaveBlob(blob, title + date + '.' + Suffix)
} else {
downloadElement.href = href
// 下载后文件名
downloadElement.download = title + date + '.' + Suffix
document.body.appendChild(downloadElement)
// 点击下载
downloadElement.click()
// 下载完成移除元素
document.body.removeChild(downloadElement)
// 释放掉blob对象
window.URL.revokeObjectURL(href)
}
}
// 判断浏览器类型
export function myBrowser () {
var userAgent = navigator.userAgent // 取得浏览器的userAgent字符串
var isOpera = userAgent.indexOf('Opera') > -1
if (isOpera) {
return 'Opera'
} // 判断是否Opera浏览器
if (userAgent.indexOf('Firefox') > -1) {
return 'FF'
} // 判断是否Firefox浏览器
if (userAgent.indexOf('Chrome') > -1) {
return 'Chrome'
}
if (userAgent.indexOf('Safari') > -1) {
return 'Safari'
} // 判断是否Safari浏览器
if (
userAgent.indexOf('compatible') > -1 &&
userAgent.indexOf('MSIE') > -1 &&
!isOpera
) {
return 'IE'
} // 判断是否IE浏览器
if (userAgent.indexOf('Trident') > -1) {
return 'Edge'
} // 判断是否Edge浏览器
}
``
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这个是浏览器采用默认打开保存临时文件修改了扩展名问题,其实你直接保存再打开应该就没有这样的问题。