javascript - js下载div并将meta附加到html
问题描述
我使用以下方法将我页面中的目标标记下载为 html 文件。
function downloadInnerHtml(filename, elId, mimeType) {
var elHtml = document.getElementById(elId).innerHTML;
if (navigator.msSaveBlob) { // IE 10+
navigator.msSaveBlob(new Blob([elHtml], { type: mimeType + ';charset=utf-8;' }), filename);
} else {
var link = document.createElement('a');
mimeType = mimeType || 'text/plain';
link.setAttribute('download', filename);
link.setAttribute('href', 'data:' + mimeType + ';charset=utf-8,' + encodeURIComponent(elHtml));
var metaTag=document.createElement("meta");
metaTag.name = "viewport";
metaTag.content = "width=device-width, initial-scale=1.0, maximum-scale=1.0";
document.head.appendChild(metaTag);
document.body.append(link);
link.click();
document.body.removeChild(link);
}
}
我面临的问题是创建的输出 html 不包含元标记。
解决方案
因为你只下载elHtml
或encodeURIComponent(elHtml)
你需要做
var elHtml = document.getElementById(elId).innerHTML;
elHtml = `<meta..... >`+ elHtml;
推荐阅读
- java - 如何打印使用 Spring Message 捕获的电子邮件正文内容
- python - 如何使用 dockerfile 在 aws sagemaker 中运行 python 文件
- google-cloud-ml - 在 GCP AI Platform 的训练脚本中部署新模型版本时的权限问题
- webpack - 在自定义 webpack 插件中设置全局变量
- angular - 如何根据角度7中的条件设置属性值
- php - 是否可以通过 PHP 在数据库中创建新列并自动显示在 HTML 表中?
- reactjs - 自动预测在 iOS 13 中无法使用 textContentType 到 TextInput
- visual-studio - 强制 TLS1.2 用于 Visual Studio 调试
- python - 使用 python(cx_oracle) 连接到 oracle 数据库
- c# - 将字典按其值分组