前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Chrome插件manifest.json文件详解

Chrome插件manifest.json文件详解

作者头像
越陌度阡
发布2022-05-06 15:10:03
1.8K0
发布2022-05-06 15:10:03
举报

开发Chrome插件首先就是配置manifest.json文件了,利用它我们可以定义在什么时机以及在什么网页执行什么脚本,有一些什么行为,下面我一起来看看这个文件有哪些配置项以及有什么作用:

代码语言:javascript
复制
{
    // 扩展名称
    "name": "MyExtension",
    // 版本。由1到4个整数构成。多个整数间用"."隔开
    "version": "1.0",
    // manifest文件版本号。Chrome18开始必须为2
    "manifest_version": 2,
    // 描述。132个字符以内
    "description": "",
    // 扩展图标。推荐大小16,48,128
    "icons": {
        "16": "image/icon-16.png",
        "48": "image/icon-48.png",
        "128": "image/icon-128.png"
    },
    // 语言
    "default_locale": "en",
    // 地址栏右侧图标管理,含图标及弹出页面的设置等
    // 建议至少保留一个设置,不然扩展图标是暗的
    "browser_action": {
        "default_icon": "image/icon-128.png",
        "default_title": "My Message",
        "default_popup": "html/browser.html"
    },
    // 地址栏最后附加图标。含图标及行为等
    "page_action": {
        "default_icon": "image/icon-48.png",
        "default_title": "My Test",
        "default_popup": "html/page.html"
    },
    // 主题,用于更改整个浏览器的外观
    "theme": {},
    // 指定扩展需要跳转到的URL
    "app": {},
    // 指定扩展进程的background运行环境及运行脚本
    "background": {
        "scripts": [
            "lib/jquery-3.3.1.min.js",
            "js/background.js"
        ],
        "page": "html/background.html"
    },
    // 替换页面
    "chrome_url_overrides": {
        "pageToOverride": "html/overrides.html"
    },
    // 指定在web页面运行的脚本/插入的css及运行/插入时机
    "content_scripts": [
        {
            "matches": [
                "https://www.baidu.com/*"
            ],
            "css": [
                "css/mystyles.css"
            ],
            "js": [
                "lib/jquery-3.3.1.min.js",
                "js/content.js"
            ],
            "run_at": "document_idle"
        }
    ],
    // 安全策略
    "content_security_policy": "",
     
    "file_browser_handlers": [],
    // 扩展的官方主页
    "homepage_url": "http://xxx",
    // 插件在隐私模式下的配置
    "incognito": "spanning",
    // 用户操作意图描述
    "intents": {},
    // 扩展唯一标识。不需要人为指定
    "key": "",
    // 扩展所需chrome的最小版本
    "minimum_chrome_version": "1.0",
    // 消息与本地处理模块映射
    "nacl_modules": [],
    // 是否允许脱机运行
    "offline_enabled": true,
    // ominbox即地址栏。用于响应地址栏的输入事件
    "omnibox": {
        "keyword": "myKey"
    },
    // 选项页。用于在扩展管理页面跳转到选项设置
    "options_page": "aFile.html",
    // 申请权限
    "permissions": [
        "https://www.baidu.com/*",
        "background",
        "tabs"
    ],
    // 扩展。可调用第三方扩展
    "plugins": [
        {
            "path": "extension_plugin.dll",
            "public": true
        }
    ],
    // 指定所需要的特殊技术。目前只支持"3D"
    "requirements": {},
    // 自动升级
    "update_url": "http://path/to/updateInfo.xml",
    // 指定资源路径,为String数组
    "web_accessible_resources": []
}

上面代码中,虽然可用的属性有这么多,但是常用的就以下这几个:

1. name 扩展名称;

2. version 插件的版本;

3. manifest_version 配置文件版本;

4. description 对于插件功能的描述;

5. icons 插件的图标;

6. browser_action 定义插件的图标后,点击图标时弹出的页面,以及插件的标题,建议始终保留一个,不设置这个属性图标会是灰色的,设置了后才会亮起来;

7. background 背景页,扩展进程的背景运行环境,可以拦截修改请求等等;

8. content_scripts 内容脚本,可以指定在什么时机向什么页面插入什么脚本或者css资源;

9. permissions 权限申请项,比如存储权限storage,请求拦截权限webRequest, webRequestBlocking等等;

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-04-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档