javascript - 如何使用 html/javascript 内联下载图像而不是 `save image as`

标签 javascript html reactjs

我尝试在同一窗口中下载图像,而不是要求最终用户在 react 中使用 save-image-asCtrl+S 。 js

以下函数是在 Stateful Class 中编写的。

forceDownload(event){
    alert(event.target.getAttribute('value'));
    var link = document.createElement('a');
    link.download = 'Download.jpg';
    document.body.appendChild(link);
    link.href = event.target.getAttribute('value');
    link.click();
}

以下代码写在render部分

<a value={imageUrl} onClick={this.forceDownload}>Download</a>

仅当 alert 抛出 null 而不是实际的 imageUrl 时,该解决方案才能正常工作。有什么遗漏吗?

最佳答案

创建一个blob并将其转换为可下载链接。

forceDownload(event){
    const data = event.target.getAttribute('value');
    const url = window.URL.createObjectURL(new Blob([data]));
    const link = document.createElement('a');
    link.href = url;
    link.setAttribute('download', 'quote.pdf');
    document.body.appendChild(link);
    link.click();
}

关于javascript - 如何使用 html/javascript 内联下载图像而不是 `save image as`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52421870/

相关文章:

javascript - 输入 onFocus 时设置光标位置?

javascript - 在重复的 jQuery/Ajax 函数中设置延迟

javascript - 将内联 SVG 转换为 png 时出现样式错误

javascript - Vue js 模态不会调整到它包含的元素的宽度以下

javascript - 我的 jquery 自动完成功能不起作用

javascript - 如何使用 React JS 将 FusionTablesLayer 放入 Google Maps API 中?

angular - 如何将列布局拆分到指定空间并使用 Angular 星云制作不可滚动的容器

javascript - jQuery 折叠选项卡(如果选择相同)

HTML自适应表格(宽度,高度)

reactjs - TypeScript/JSX 中 React.createElement 的正确语法