将CaptureVisibleTab图像保存到临时文件以通过Node.js服务器发送

我试图捕获一个可见的选项卡使用铬扩展名。 我已经设法让图像显示在另一个标签检查其工作。 但我实际上想要拍摄的图像,保存为用户计算机上的临时文件中的PNG。 然后最终被发送到服务器,但这是一个不同的问题。 道歉,如果格式不好,我正在学习。

var id = 100; chrome.browserAction.onClicked.addListener(function() { chrome.tabs.captureVisibleTab(function(screenshotUrl) { var viewTabUrl = chrome.extension.getURL('../HTML/InfoPullHTML.html?id=' + id++) var targetId = null; chrome.tabs.onUpdated.addListener(function listener(tabId, changedProps) { if (tabId != targetId || changedProps.status != "complete") return; // alert('test2'); chrome.tabs.onUpdated.removeListener(listener); // alert('test3'); var views = chrome.extension.getViews(); // alert('test4'); for (var i = 0; i < views.length; i++) { var view = views[i]; // alert('test' + (i + 5)); if (view.location.href == viewTabUrl) { view.setScreenshotUrl(screenshotUrl); break; } } }); // alert('AfterForLoop'); chrome.tabs.create({url: viewTabUrl}, function(tab) { targetId = tab.id; }); }); }); 

图像被采取。 将图像保存为PNG并保存在用户计算机上的临时文件中。

现在我唯一的结果是图像被采取然后显示在一个新的标签。 我是一名编程初学者,对于如何向前迈进这一点,我还没有丝毫的线索。

 <!DOCTYPE html> <html> <script src="../JavaScript/BrowserInfoJS.js"></script> <script src="../JavaScript/ScreenshotTargetJS.js"></script> <head> <title></title> </head> <body> Image here: <p> <img id="target" src="../images/white.png"> <p> End image </body> </html> 

这是单击扩展名后图像显示的页面。

有可用的存储API 。 为了保存文件,使用Filesystem 。

但是,由于看起来只想保存文件以便稍后上载,所以处理本地存储API会更简单:

 chrome.tabs.captureVisibleTab({format:"png"}, src=>{ // chrome.storage.local.get({"captured": []}, s=>{ // s.captured.push(src); chrome.storage.local.set({"captured": s.captured}); }); }); 

如果要一次存储大图像或多个图像,请务必声明unlimitedStorage权限。