javascript - 在 safari 浏览器中,无法使用 html2canvas 在反应中下载带有 html 内容的图像
问题描述
我能够使用 html2canvas 包下载带有 chrome 内容的图像,但在 safari 中我能够下载图像但内容没有显示/涂黑。使用以下代码进行点击事件 [Safari 下载图像预览][1]
window.scrollTo(0, 0);
const captureDOMItemArr: HTMLCollectionOf<any> = document.getElementsByClassName(
'insight-content'
);
const captureDOMItem: HTMLElement = captureDOMItemArr[0];
function downloadURI(uri: string, name: string) {
const link = document.createElement('a');
link.download = name;
link.href = uri;
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
}
html2canvas(captureDOMItem, {
allowTaint: true,
foreignObjectRendering: true
}).then((canvas: any) => {
const img = canvas.toDataURL('image/png');
downloadURI(img, 'screenshot.png');
});
}```
[1]: https://i.stack.imgur.com/1n3U7.png
解决方案
目前在 GitHub 上有一个未解决的问题。该问题还有一个非官方的解决方案。但似乎没有完美的答案。
推荐阅读
- flutter - 我的应用请求始终为空;(导入“包:google_sign_in/google_sign_in.dart”;)
- events - 如何绑定和取消绑定在 angular 指令中传递的事件?
- elasticsearch - Magento 2 中的 ElastTICSEARCH resource_already_exists_exception 重新索引
- c# - 没有增加价值c#
- reactjs - 如何在不导航到子组件的情况下发送值
- c#-8.0 - c# 8.0 switch 表达式中的多个案例
- c# - 批量向/从 AAD 组添加/删除用户
- google-search - 我需要在 Google 搜索结果中添加更多预览行
- hadoop3 - hadoop 3.3.1 fs -mkdir 没有这样的文件或目录
- python - 将 Scala neo4j 写入代码转换为 databrick 中的 Pyspark