获取chrome.tabs.captureVisibleTab的图像文件
Get the image file of chrome.tabs.captureVisibleTab
我想在Chrome扩展中捕获当前页面的Chrome。然后我找到
chrome.tabs.captureVisibleTab(integer windowId, object options, function callback)
回调函数就像
function(string dataUrl) {...};
当我尝试使用这个API时,我得到的dataUrl就像
data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgMCAgMDAwMEAwME…OdiCJJMxdVYyueT/tGodJ0nTdBsks9Ogt7G0RmZYIAFRcnJwOw9B0AwBgAUUV9AZFeiiigD//Z...
但是我想使用这个图像文件位置或将其保存到另一个位置。那么我如何才能做到这一点呢?
或者是否有其他方法来捕获网页截图,然后将此页面保存为chrome扩展中的文件?
您可以将base64编码的jpeg发送到运行php的服务器以保存文件。这个例子忽略了安全性来简化
<?php
$screenshot = $_POST['screenshot'];
$screenshot = str_replace('data:image/jpeg;base64,', '', $screenshot);
$screenshot = str_replace(' ', '+', $screenshot);
$data = base64_decode($screenshot);
$file = uniqid() . '.jpeg';
$success = file_put_contents($file, $data);
然后可以让服务器返回要下载的图像的引用。
在网上很难找到一个好的答案。下面的代码将截取一个屏幕截图,然后将图像下载到您的计算机:
In my manifest.json
"manifest_version": 3,
"permissions": ["activeTab", "scripting"],
"background": {
"service_worker": "background.js"
},
...
In background.js
const download = (dataurl, filename) => {
const link = document.createElement("a");
link.href = dataurl;
link.download = filename;
link.click();
}
chrome.action.onClicked.addListener((tab) => {
chrome.tabs.captureVisibleTab(async (dataUrl) => {
await chrome.scripting.executeScript({
func: download,
target: { tabId: tab.id },
args: [dataUrl, 'test.png'],
});
});
});
相关文章:
- 将包含SVG元素的HTML转换为图像文件
- 由多个图像文件组成的响应地图
- 使用文件夹路径名保存所有图像文件和文件名
- 如何将 html5 画布另存为窗口 8 Metro 应用程序中的图像文件
- 将图像文件存储在猫鼬模式中的二进制数据中,并以html形式显示图像
- 如何使用heatmap.js保存canvas标记生成的图像文件
- 如何使用html / angularjs保存图像文件
- 如何从 HTML 或 Javascript for Windows Phone 访问图像文件
- 在 Windows 现代(地铁)UI 应用中存储图像文件和音频文件的方法是什么?
- 节点 js 流星 js 图像文件上传图像损坏
- 从图像URL javascript html保存图像文件
- 如何使用AJAX读取图像文件并渲染到Canvas
- 浏览器和大量的图像文件处理
- 什么错误I'我在下面的jQuery代码中集成filepicker.io来上传一个图像文件
- 节点:将 base64 源写入图像文件
- 如何将图像文件以及JavaScript变量的值上传到服务器和数据库
- 如何从本地文件夹(磁盘存储)读取或获取图像文件,并使用nodejs服务器将其发送到Angularjs
- 如何使用expressnodejs上传图像文件并进行显示
- 如何用我在HTML5画布上绘制的src保存图像文件
- 图像文件因websocket文件传输而损坏