当前位置: 首页 > news >正文

编写一个简单的chrome截图扩展

文件结构:

screenshot
|-- background.js          ---> service_worker运行的js
|-- images                 ---> 图片
|   |-- logo-128x128.png
|   |-- logo-16x16.png
|   |-- logo-32x32.png
|   `-- logo-48x48.png
`-- manifest.json          ---> JSON文件描述了扩展程序的功能和配置

1 directory, 6 files

manifest.json文件:

{
    "manifest_version": 3, // manifest版本
    "name": "screenshot", // 名称
    "description": "截图", // 描述
    "version": "1.0", // 版本
    "icons": {
        // 扩展程序页面的图片
        "16": "images/logo-16x16.png",
        "32": "images/logo-32x32.png",
        "48": "images/logo-48x48.png",
        "128": "images/logo-128x128.png"
    },
    "background": {
        "service_worker": "background.js"
    },
    "action": {
        // 扩展程序工具栏上的主图片
        "default_icon": {
            "16": "images/logo-16x16.png",
            "32": "images/logo-32x32.png",
            "48": "images/logo-48x48.png",
            "128": "images/logo-128x128.png"
        }
    },

    // 权限
    "permissions": [
        "activeTab",
        "downloads"
    ],

    // 命令
    "commands": {
        "shortcut": {
            "suggested_key": {
                "default": "Ctrl+Shift+S",
                "mac": "Command+Shift+S"
            },
            "description": "截图"
        }
    }
}

background.js文件:

// 点击扩展的图标截图
// https://developer.chrome.com/docs/extensions/reference/api/action?hl=zh-cn
chrome.action.onClicked.addListener(async function () {
    // https://developer.chrome.com/docs/extensions/reference/api/tabs?hl=zh-cn
    const screenshotUrl = await chrome.tabs.captureVisibleTab(); // 截取指定窗口中当前处于活动状态的标签页的显示区域
    console.log(screenshotUrl);

    // https://developer.chrome.com/docs/extensions/reference/api/downloads?hl=zh-cn#method-download
    // https://github.com/GoogleChrome/chrome-extensions-samples/blob/main/_archive/mv2/api/downloads/download_links/manifest.json
    chrome.downloads.download(
        {
            // url、文件名、是否另存为
            url: screenshotUrl,
            filename: "screenshot-by-click",
            saveAs: true
        },
    );
});

// 使用快捷键截图
// https://developer.chrome.com/docs/extensions/reference/api/commands?hl=zh-cn
chrome.commands.onCommand.addListener(async function (command) {
    if (command == "shortcut") {
        // https://developer.chrome.com/docs/extensions/reference/api/tabs?hl=zh-cn
        const screenshotUrl = await chrome.tabs.captureVisibleTab(); // 截取指定窗口中当前处于活动状态的标签页的显示区域
        console.log(screenshotUrl);

        // https://developer.chrome.com/docs/extensions/reference/api/downloads?hl=zh-cn#method-download
        // https://github.com/GoogleChrome/chrome-extensions-samples/blob/main/_archive/mv2/api/downloads/download_links/manifest.json
        chrome.downloads.download(
            {
                // url、文件名、是否另存为
                url: screenshotUrl,
                filename: "screenshot-by-command",
                saveAs: true
            },
        );
    }
});

扩展程序页面:

完整代码:

https://gitcode.com/janthinasnail/screenshot

详见:

https://developer.chrome.com/docs/extensions/reference/api/action?hl=zh-cn

https://developer.chrome.com/docs/extensions/reference/api/commands?hl=zh-cn

https://developer.chrome.com/docs/extensions/reference/api/tabs?hl=zh-cn

https://developer.chrome.com/docs/extensions/reference/api/downloads

从零开始制作Chrome截图插件:新手完全指南_谷歌截图插件-CSDN博客

简简单单开发一个Chrome截图插件_chrome插件实现截图-CSDN博客

相关文章:

  • 二叉树leetcodeJAVA2
  • 统信UOS中使用Vscode编程
  • (四)---四元数的基础知识-(定义)-(乘法)-(逆)-(退化到二维复平面)
  • 如何把master迁出的bug修改分支,合并、删除本地、删除远端
  • 服务安全认证概述与基础认证方式
  • Haption Virtuose力反馈设备在CAVE投影系统中提供真实训练交互
  • 金融级安全加速:群联SD-WAN如何兼顾防御与低延迟?
  • vue中根据html动态渲染内容
  • LeetCode hot 100 每日一题(11)——189. 轮转数组
  • 汇编与反汇编:DEBUG 命令使用指南
  • 万户协同办公平台ezOffice selectCommentField 存在 SQL 注入漏洞(DVB-2025-8941)
  • sqlserver 数据日常维护
  • 使用【docker】+【shell】脚本半自动化部署微服务项目
  • 每日OJ_牛客_小红的子串_滑动窗口+前缀和_C++_Java
  • vue3中如何实现路由导航跳转
  • [数据结构]排序之 归并排序(有详细的递归图解)
  • Python 监听模式(Observer Pattern)
  • Java面试黄金宝典6
  • 【Android性能】Systrace分析
  • 前后端联调解决跨域问题的方案
  • 身临其境感受伟人思想力量,“马克思书房”在上海社科馆揭幕
  • 85后清华博士黄佐财任湖北咸宁市咸安区委副书记、代区长
  • 中美“第二阶段”贸易协定是否会在会谈中提出?商务部回应
  • 民生访谈|今年上海还有哪些重要演出展览?场地配套如何更给力?
  • 司法部:加快研究制定行政执法监督条例,建立完善涉企行政执法监督长效机制
  • 美联储连续第三次维持利率不变,警示关税影响