我想生成一個CSV文件作爲一些用戶交互的結果,然後提示用戶下載它。我怎樣才能做到這一點?如何在Google Chrome擴展程序中生成要下載的文件?
我不認爲這是可能的直JS,但也許鉻給我一些提升的特權?
我想生成一個CSV文件作爲一些用戶交互的結果,然後提示用戶下載它。我怎樣才能做到這一點?如何在Google Chrome擴展程序中生成要下載的文件?
我不認爲這是可能的直JS,但也許鉻給我一些提升的特權?
Chrome並未提供任何幫助,但我認爲您應該能夠使用downloadify js庫在後臺使用Flash組件觸發文件保存對話框。
當我嘗試演示時,似乎會讓Firefox崩潰。儘管Chrome並沒有崩潰......所以,我想我可以忍受這一點。 – mpen
您現在可以使用HTML5 File API下載文件。它仍處於開發階段,但您可以使用BlobBuilder和重定向您的使用,以下載文件:
var bb = new BlobBuilder();
bb.append(csvContents);
var blob = bb.getBlob();
location.href = window.webkitURL.createObjectURL(blob);
有關文件API的更多信息,的HTML5Rocks有很大的教程:
我最近需要做同樣的事情 - 生成文件並在Chrome擴展中強制執行下載。在這裏,您是代碼片段這樣做,使用ES6和推薦的方法:
let docContent = ... /* your content */;
let doc = URL.createObjectURL(new Blob([docContent], {type: 'application/octet-binary'}));
chrome.downloads.download({ url: doc, filename: filename, conflictAction: 'overwrite', saveAs: true });
您還可以在manifest.json
聲明一個適當的特權:
"permissions" : ["downloads"]
我在ASP.NET做到了這一點。你在使用什麼技術? –
@Jon:Chrome擴展程序是用JS編寫的...不要以爲我有其他選擇。 – mpen