windows.open() 什么情况下是下载文件? 什么情况下是预览文件/视频?

就像标题所问的,一直没搞清这个问题,先多谢各位回答者了.

阅读 7.3k
3 个回答

主要看目标 url 的 header,如果能解析且没有标记为 attachment,都会打开,不然就是下载。

windows.open()是指再新窗口打开
open()为浏览器的方法,基本上都支持
至于下载还是预览,那肯定是要看你的浏览器是否支持此格式在线预览,如链接,图片,视频这些常见格式可直接预览;像psd,zip等格式肯定是下载了

新手上路,请多包涵

也可以用 URL.createObjectURL 创建一个预览url对象。即便本身是下载文件,也可以自己获取二进制流再预览。

例如:

fetch('url')
    .then(response=>response.blob)
    .then(blob=>{
    let url = URL.createObjectURL(blob);
    window.open(url);
    
    // 删除引用资源
    URL.revokeObjectURL(url);
})
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题