我使用以下方法将目标标签作为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不包含meta标记。
答案 0 :(得分:0)
因为您仅下载elHtml
或encodeURIComponent(elHtml)
您需要做
var elHtml = document.getElementById(elId).innerHTML;
elHtml = `<meta..... >`+ elHtml;