gpt4 book ai didi

javascript - 将 javascript blob 变量下载为 mhtml

转载 作者:行者123 更新时间:2023-11-30 10:44:26 27 4
gpt4 key购买 nike

我正在编写一个使用 google chrome 的扩展程序

chrome.pageCapture.saveAsMHTML(object details, function callback)
function callback (blob mhtmlData) {...};

http://code.google.com/chrome/extensions/dev/pageCapture.html

基本上将 mhtml 页面的 blob 表示形式存储到变量中。

现在我想让用户将这个 blob 变量下载为 mhtml 文件..

我试过了,但它给了我一个 200kb 的文件,里面装满了随机字符。

chrome.pageCapture.saveAsMHTML({tabId: sender.tab.id}, function callback(mhtml){

var reader = new FileReader();
reader.readAsDataURL(mhtml);

reader.onload = function(e) {
window.open(e.target.result);
}


});

最佳答案

以下是我放入页面操作弹出窗口中的一些代码。我留下了我没有使用的东西但注释掉以供引用。
编辑:
使用来自 https://github.com/eligrey/FileSaver.js 的库这很容易,也许你可以看看他们在做什么。

popup.html

<html>
<head>
<script xmlns="http://www.w3.org/1999/xhtml" type="application/ecmascript" async="" src="https://raw.github.com/eligrey/FileSaver.js/master/FileSaver.min.js"></script>
<script>
function onLoad(){
var downloadLink = document.querySelector("#MHTML");

var oFReader = new FileReader();
oFReader.onload = function (oFREvent) {
// None of the following worked
//window.open('data:application/octet-stream;'+oFREvent.target.result.slice(5));
//window.open('data:application/message/rfc822;'+oFREvent.target.result.slice(5));
//window.open(oFREvent.target.result);
};

chrome.tabs.getSelected(null, function(tab) {

chrome.pageCapture.saveAsMHTML({tabId: tab.id}, function (mhtml){

/// Works but requires user input
//downloadLink.setAttribute('download',tab.title+'.mhtml');
//downloadLink.setAttribute('href',window.webkitURL.createObjectURL(mhtml));

///Works but awful filename without extension
//window.open(window.webkitURL.createObjectURL(mhtml));

///Doesnt work
//oFReader.readAsDataURL(mhtml);

///Using https://github.com/eligrey/FileSaver.js , works great
saveAs(mhtml, tab.title+'.mhtml');
})
});

}
</script>
</head>
<body onload="onLoad();" style="width: 400px">

<a id="MHTML" href="#">Download Page As MHTML</a>

</body>
</html>

关于javascript - 将 javascript blob 变量下载为 mhtml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9244649/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com