IE 9+ 下载属性解决方法

2023-12-30

我正在尝试从我的网络服务下载文件。我需要将复杂的元数据传递到服务器才能知道如何下载文件。以下是我如何在常青浏览器中实现这一目标:

// i use angular but not important for this demo
$http.post({ /* complex object */ }).then(xhr){

    // use download attribute
    // http://davidwalsh.name/download-attribute

    var hiddenElement = document.createElement('a');
    hiddenElement.href = 'data:attachment/csv,' + encodeURI(xhr.data);
    hiddenElement.target = '_blank';
    hiddenElement.download = $scope.filename + '.csv';
    hiddenElement.click();
    hiddenElement.remove();
});

当然,我无法发布 IE 上的下载属性。我之前使用过的解决方法是:

$("body>#download_iFrame").remove();
$("body").append('<iframe name="downloadFrame" id="download_iFrame" style="display:none;" src="" />');
$("#form-download")[0].submit();

然后在html中

<form target="downloadFrame"
  action="'api/search/export/'"
  id="form-download"></form>

问题是我无法传递这样的对象。当然,我可以放置一个隐藏输入并序列化其值,但我的对象有点大,所以这最终成为一个问题。

您如何解决这个问题?


如果您只关心最近的浏览器,您可以考虑使用文件保存器.js https://github.com/eligrey/FileSaver.js。当在 IE10+ 上运行时,它使用navigator.msSaveOrOpenBlob http://msdn.microsoft.com/en-us/library/ie/hh772332(v=vs.85).aspx.

var xhr = new XMLHttpRequest();
xhr.open("GET", url, true);
xhr.responseType = "blob";
xhr.onload = fuction (eventInfo) {
    if (this.status == 200) {
        var blob = this.response;

        // FileSaver.js usage:
        saveAs(blob, "filename.ext");

        // Or IE10+ specific:
        navigator.msSaveOrOpenBlob(blob, "filename.ext");
    }
};
xhr.send();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IE 9+ 下载属性解决方法 的相关文章

  • 导航栏折叠在 Bootstrap 中不起作用

    Bhanu pratap 解决了这个问题 在这个问题的末尾检查一下 我一直在遵循旧的路线来构建导航栏折叠 三明治 问题是课程中的页面顶部似乎有一个黑条 并且缩小页面时会出现导航栏 对我来说 我只需在左侧找到一个按钮 另外 当我缩小页面时 我
  • 使用JQuery检查元素是否有边框?

    所以我正在玩 el css 尝试确定元素是否有边框 我用 css border style solid 设置边框 这是可行的 但实际上它设置了 4 种单独的样式 border right style border left style bo
  • 如何仅使用CSS设置某个角的边框半径

    如上所示 我可以只给顶部部分而不给底部提供半径 或者有时给底部而不是顶部提供半径吗 有没有办法只给一个角提供边界半径 Like border radius top left top right bottom right bottom lef
  • 使用 javascript 将 html 文本渲染为位图,无需服务器端代码

    我需要使用 javascript 代码来转换 html 中的文章 帖子 以便最终用户以位图的形式查看 有没有办法在没有服务器端代码的情况下做到这一点 example p testing text here p 您可以使用例如html2can
  • javascript中输入类型时间的值

    我有这个html
  • 使用 javascript 禁用按钮:FF 与 IE

    我有一排按钮 它们都会创建一个我想在新选项卡中打开的 pdf 文件 这样按钮页面就会保持在顶部 并且 pdf 会打开以进行打印 为了防止单击按钮两次 我禁用该按钮 如下所示 我使用 python
  • 如何在 Java 中使用 HTML 解析器和 Apache Tika 来提取所有 HTML 标签?

    我下载了 tika core 和 tika parser 库 但找不到将 HTML 文档解析为字符串的示例代码 我必须删除网页源的所有 html 标签 我能做些什么 如何使用 Apache Tika 进行编码 您想要 html 文件的纯文本
  • 使用本机 JavaScript 获取过渡中的 CSS 值

    这个问题之前被问过 但答案使用了 jQuery here https stackoverflow com q 8920934 3186555 因此 我将调整问题以专门询问native解决方案 to 最小化依赖关系 假设您有一个 div 然后
  • 为什么字体扩展仅适用于 PDF,而不适用于其他格式(HTML、XLS、DOC)?

    通过 Jaspersoft Studio 我们使用以下设置将用于 Web 应用程序的内置 Windows Calibri 字体变体导出到字体扩展 JAR 中 导出的jrfontextensions jar内的目录结构如下 jrfontext
  • 是否可以使“HTML 到语音”与“文本到语音”相同?

    我有一个奇怪的要求 在我现有的应用程序中我有Text2Speech为此 我使用了AVSpeechSynthesizer 到语音文本 但现在要求发生了变化 现在我需要将 HTML 文件数据转换为文本 例如HTML2Speech 我们可以想到的
  • 如何保留用户的输入打印?

    我正在尝试添加用户的评论 所以我只是尝试读取输入并将其发送以进行打印 但问题是 一旦我刷新页面或输入另一个输入 打印的输入就会消失 因此 即使刷新页面或重新输入新评论 我也希望始终保持所有用户的显示 代码 div div
  • 使用其innerHTML查找元素

    请看一下这个 DOM 树 div div span Home1 span div span Home2 span span Home3 span div 现在假设我有一个场景 我以某种方式获得了第一个跨度的innerHTMLHome1 是否
  • 如何使自定义 Web 组件可聚焦?

    我正在写一个自定义网络组件 https github com denilsonsa html5 knob这意味着是互动的 我如何告诉浏览器这个自定义组件应该获得焦点 我希望我的自定义元素 可以聚焦 通过选项卡导航 集中注意力时可以接收按键信
  • createHTMLNotification() 替换

    我创建了一个 Chrome 扩展程序 其中使用createHTMLNotification 在所有内容之上显示一个窗口 然而 从 Chrome 28 开始 谷歌决定放弃createHTMLNotification 完全 为什么 谷歌 为什么
  • 在 Angular html 模板中访问常量枚举

    假设我有一个常量枚举 export const enum MyConstEnum Value1 Value1 Value2 Value2 Value3 Value3 现在我想在我的 Angular 模板中使用它 span This has
  • 无法使用 BeautifulSoup4 (Python 3) 抓取特定表

    我想从 Ligue 1 足球网站上抓取一张表格 具体来说 该表包含有关卡片和裁判的信息 http www ligue1 com LFPStats stats arbitre competition D1 http www ligue1 co
  • 如何使用javascript确保元素仅在圆上朝一个方向移动?

    好吧 我承认我对三角学真的很糟糕 出于上下文的考虑 我将添加我在这里提到的问题中的内容 参考问题 https stackoverflow com a 39429290 168492 https stackoverflow com a 394
  • 如何使使用 css 调整大小的图像在 IE 中看起来不错?

    当使用 css 宽度 高度或属性宽度 高度缩放图像时 IE6 和 IE7 无法很好地缩放网页中的图像 我不确定它默认使用哪种算法 但这不好 在这些浏览器中缩放时 缩放图像会显示锯齿伪影 幸运的是 有一种方法可以通过简单的 css 规则强制
  • 使用 JavaScript 移动页面上的按钮

    我的按钮可以移动 但奇怪的是 我无法弄清楚偏移是否有问题 我希望我的按钮随着鼠标光标移动 但现在它的移动方式不是我想要的 有时它会消失 另外 创建的新按钮是重叠的 我不知道如何解决这个问题并拥有更好的外观 var coorA var coo
  • 主页(网格)上的缩略图现在显得模糊。如何纠正?

    我不知道这看起来是否愚蠢 但从早上开始我就无法纠正这个突然出现在我的博客网站上的错误www candidopinions in http www candidopinions in 我有一个网格视图模板 其中博客文章中的特色图像作为调整大小

随机推荐

  • 在 Xcode 4 中添加框架 [重复]

    这个问题在这里已经有答案了 可能的重复 如何在 Xcode 4 中 添加现有框架 https stackoverflow com questions 3352664 how to add existing frameworks in xco
  • 如何同步对具有 didSet 的属性的访问?

    如何同步使用 didSet 的属性的访问 使用 GCD 或 objc sync enter 我有一处房产 有一个房产观察员 如何使用私有队列来同步属性的获取 设置 var state State disconnected Q How to
  • PHP 中类的默认可见性是多少?

    我可以在中找到属性和方法的默认可见性PHP手册 https secure php net manual en language oop5 visibility php 但我找不到有关课程本身的任何信息 我的猜测是它是公开的 但如果有人可以链
  • 如何在 Android 中写入 SD 卡上的文件夹?

    我使用以下代码从服务器下载文件 然后将其写入 SD 卡的根目录 一切正常 package com downloader import java io File import java io FileOutputStream import j
  • 用于匹配大括号的 IntelliJ IDEA 快捷键映射

    在 IntelliJ IDEA 中导航到匹配大括号的键盘映射是什么 public void blah If 是我的光标 我想用这个键盘映射跳到右大括号 我只用 IntelliJ 9 验证了这一点 但是 在 Windows 上 Ctrl wi
  • 将 GitHub 分叉到 AzureDevOps?

    这篇2014年的帖子 http www woodcp com 2014 01 how to fork git repositories on visual studio online 表示没有对从 GitHub 分叉到 AzureDevOp
  • matplotlib 中的 Latex 渲染错误

    使用 python 2 7 12 在 Ubuntu 16 04 上 和 matplotlib 1 5 2 以下代码渲染不正确 from matplotlib pyplot import plot 1 2 1 1 xlabel r beta
  • Python。如何优化搜索功能

    有什么办法可以优化这两个功能吗 第一个功能 def searchList list element for i in range 0 len list if list i element return True return False 第
  • Mockito - void 函数上的 thenCallRealMethod()

    我在尝试编写 JUnit 测试用例时遇到了问题 而且对 Mockito 还比较陌生 我有一个正在嘲笑的类的函数 该函数恰好是 void 返回类型 当从我的模拟类调用此函数时 我的理解 和调试经验 是它不会调用原始函数 为了克服这个问题 我尝
  • pythonanywhere - 如何使用 websockets 按照 web2py 消息传递示例传输消息?

    因此 我构建了一个应用程序来使用 web2py 和 pythonanywhere 测试 websockets 并且它可以在本地工作 但是当上传到 pythonanywhere 时它不起作用 我认为原因是我正在将内容发送到本地主机 127 0
  • Google Play 游戏功能徽章在 Google Play 上不可见

    我成功地将 Google Play 服务集成到我的 Android 应用程序中 并添加了成就和排行榜 但发布已经几天了 但我在 Google Play 上看不到它的徽章 我需要向 AndroidManifest xml 添加什么内容吗 这些
  • Java util zip 创建“损坏”的 zip 文件

    我正在压缩目录的内容 但在尝试打开压缩文件时遇到错误 谁能告诉我的代码发生了什么 也许我没有分配足够的字节 查看 zipDirectory 内部 您会看到我正在压缩包含特殊扩展文件的文件夹 不确定错误发生在哪里 所以也许有人可以帮助我 非常
  • 使用 MongoDB 进行 Elastic Beanstalk 部署

    非常感谢有关如何通过以下堆栈正确部署 Elastic Beanstalk 的资源建议 MongoDB 导轨 美洲狮 Sidekiq Redis 弹性搜索 我需要在 ebextension 文件中设置所有这些内容吗 或者是在 AWS 中手动设
  • 给定音频流,查找门何时关上(声压级计算?)

    与拍手探测器没什么不同 拍手 拍手鼓掌拍手吧 拍手鼓掌拍手 拍手 拍板 拍手鼓掌 我需要检测门何时关闭 这是在车辆中 这比房间或家庭门更容易 Listen http ubasics com so van driver door openin
  • 这不是尾递归风格的代码吗?

    我对 Scala 有点陌生 在阅读 David Pollack 的 Begining Scala 时尝试了它 他定义了一个简单的递归函数 从文件中加载所有字符串 def allStrings expr gt String List Stri
  • Android Volley,JsonObjectRequest 但接收 JsonArray

    所以我正在使用JsonObjectRequest发送一个JsonObject到休息电话 但它返回JsonArray而不是一个JsonObject 它给了我一个错误 说它无法解析来自JsonObjectRequest 但如果我使用JsonAr
  • Go指针第一次赋值

    当我在玩弄闭包时 我偶然发现了这种行为 我无法理解它 此代码片段的工作原理 func main var a string foo var b string var c string bar b c fmt Printf s s n a b
  • 比较数组不打印差异

    这是我的测试代码 a array Peter gt 35 Ben gt 37 Joe gt 21 b array Peter gt 35 Ben gt 21 Joe gt 43 function leo array diff a b map
  • DWT Java 脚本库进度对话框自动与 Angular 5 显示

    我将 Dynamic Web Twain javascript 库合并到我的 Angular 应用程序中 以允许我的最终用户使用 Web 浏览器而不是桌面应用程序进行扫描 加载页面后 立即弹出进度条 这不是预期的行为 当我使用 Angula
  • IE 9+ 下载属性解决方法

    我正在尝试从我的网络服务下载文件 我需要将复杂的元数据传递到服务器才能知道如何下载文件 以下是我如何在常青浏览器中实现这一目标 i use angular but not important for this demo http post