大佬教程收集整理的这篇文章主要介绍了如何使用JavaScript设置chrome扩展的文件下载位置?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
这有可能吗?有关如何去做的任何建议?
提前致谢
我的代码
function downloadFile(url,onsuccess,arrayOfUrl,zip) { var xhr = new XMLhttprequest(); xhr.open('GET',url,truE); xhr.responseType = "blob"; xhr.onreadystatechange = function () { if (xhr.readyState == 4) { if (onsuccess) { onDownloadComplete(xhr.response,zip) } } } xhr.send("null"); } function onDownloadComplete(blobData,urls,zip ){ if (count < urls.length) { blobToBase64(blobData,function(binaryData){ var filename = urls[count].subString(urls[count].lasTindexOf('/')+1); zip.file(filename+".docx",binaryData,{Base64: truE}); if (count < urls.length -1){ count++; downloadFile(urls[count],onDownloadComplete,zip); } else { var content = zip.generate(); var zipName = 'download.zip'; var a = document.createElement('a'); a.href = "data:application/zip;base64," + content; a.download = zipName; a.click(); count = 0; } }); } }@H_616_8@popup.js
function onDownloadComplete(blobData,zip ){ if (count < urls.length) { blobToBase64(blobData,function(binaryData){ // add downloaded file to zip: var filename = urls[count].subString(urls[count].lasTindexOf('/')+1); // zip.file(filename,{Base64: truE}); zip.file(filename+".docx",{Base64: truE}); //file"+count+".docx" if (count < urls.length -1){ count++; downloadFile(urls[count],zip); } else { chrome.runtime.getBACkgroundPage(function () { zipAndSaveFiles(zip);}); } }); } } **BACkground.js** function zipAndSaveFiles(zip) { var content = zip.generate(zip); var zipName = 'download.zip'; var dataURL = 'data:application/zip;base64,' + content; chrome.downloads.download({ url: dataURL,filename: zipName,saveAs: true }); }@H_616_8@
chrome.downloads.download()
方法.例如.:
var content = zip.generate(); var zipName = 'download.zip'; var dataURL = 'data:application/zip;base64,' + content; chrome.downloads.download({ url: dataURL,saveAs: true }); count = 0;@H_616_8@如果省略SaveAs对话框的显示,则只能指定位于用户定义的下载文件夹内或其子文件夹中的文件名.
关于弹出窗口的问题(见下面的评论):
你应该从你的后台页面调用该函数,而不是弹出窗口.例如.您可以使用chrome.runtime.sendMessage
/onMessage
将消息传递到您的后台页面:在BACkground.js中:
... function zipAndSaveFiles(...) { ... } chrome.runtime.onmessage.addListener(function(msg,sender) { if ((msg.action === 'zipAndSave') && (msg.params !== undefined)) { zipAndSaveFiles(msg.params); } });@H_616_8@在popup.js中:
... chrome.runtime.sendmessage({ action: 'zipAndSave',params: ['url1','url2','url3'] });@H_616_8@
以上是大佬教程为你收集整理的如何使用JavaScript设置chrome扩展的文件下载位置?全部内容,希望文章能够帮你解决如何使用JavaScript设置chrome扩展的文件下载位置?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。