【问题标题】:How to download HTML via vanilla JS with Mi browser (Xiaomi)?如何使用 Mi 浏览器(小米)通过 vanilla JS 下载 HTML?
【发布时间】:2020-10-20 02:53:30
【问题描述】:

我在小米浏览器下遇到了我的代码问题。我找不到将我的页面的一部分下载为 html 的 vanilla javascript 解决方案。在 Chrome 或 Firefox 上运行的代码在 Mi 中不起作用。 我的部分代码:

var elHtml = ""+document.getElementById("hlavicka").innerHTML +""+ document.getElementById("stranka").innerHTML + ""; if (navigator.msSaveBlob) { // IE 10+ navigator.msSaveBlob(new Blob([elHtml], { type: mimeType + ';charset=utf-8;' }), 文件名); } 别的 { var link = document.createElement('a'); document.body.appendChild(link); 哑剧类型 = 哑剧类型 || '文本/普通'; link.setAttribute('下载', 文件名); link.setAttribute('href', 'data:' + mimeType + ';charset=utf-8,' + encodeURIComponent(elHtml)); 链接.click(); }

你能给我一个提示吗?

【问题讨论】:

    标签: javascript mi


    【解决方案1】:

    好吧,使用纯 JavaScript,你可以这样做:

    var yourElement = document.getElementById("yourElement");
    
    download("example.html", yourElement.outerHTML);
    
    function download(filename, text) {
        var element = document.createElement('a');
        element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text));
        element.setAttribute('download', filename);
    
        element.style.display = 'none';
        document.body.appendChild(element);
    
        element.click();
    
        document.body.removeChild(element);
    }
    

    只需将yourElement 变量更改为您要下载的元素。 download() 函数将自动下载带有 HTML 的文件(在该元素内),作为 html 文件。您可以通过更改函数中的文件名参数来使用不同的文件格式。

    【讨论】:

    • 谢谢,但是小米默认的手机浏览器小米说下载失败。无效的网址。 Firefox 或 Chrome 等其他浏览器可以很好地使用我的代码或您提供的代码。似乎浏览器的行为与其他浏览器不同,但我不知道如何。
    • 哦,对了,在这种情况下,我会为小米研究一个解决方案。
    【解决方案2】:

    我有同样的问题,我找到了解决方案: 小米浏览器不支持下载文件作为数据URI,所以你必须将文件上传到你的服务器(我使用AJAX和php),然后将href属性设置为你服务器上的文件位置: element.setAttribute('href' , '/mifiles/'+文件名);

    用户下载后,不要忘记从服务器中删除文件。

    【讨论】:

    • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 2021-03-26
    • 2019-05-15
    • 2021-09-02
    • 2018-01-17
    • 1970-01-01
    • 2017-09-14
    • 1970-01-01
    相关资源
    最近更新 更多