chrome浏览器插件开发视频教程 第2课插件的文件结构

chrome浏览器插件开发视频教程 第2课插件的文件结构

视频教程和源码见文章结尾

大家好,这是我们课程的第2课,在我们正式开始开发插件前,我们先来了解一下一个chrome插件的构成,通常一个chrome插件包含以下几个部分:

chrome插件源码结构

chrome插件源码结构

下面我们以一个记账插件的部分源码举例说明。

1.manifest.json

插件的配置文件,包含插件名称、版本号、图标、权限等信息,每个插件必须有该文件。示例:

{
    "manifest_version": 2,
    "name": "budgetManager",
    "version": "1.0",
    "description": "hello world 插件",
    "icons":{
        "128":"img/logo.png",
        "48":"img/logo.png",
        "16":"img/logo.png"
    },
    "browser_action":{
        "default_icon":"img/logo.png",
        "default_popup":"popup.html"
    },
    "background":{
        "scripts": ["js/eventPage.js"],
        "persistent": false
    },
    "permissions":[
        "storage",
        "notifications",
        "contextMenus"
    ],
    "options_page": "options.html"
}

2.html文件

用于向用户展示信息并与用户交互的界面,如插件的设置界面等,若不需与用户进行交互不需要此类文件。示例:popup.js

<html>
    <head>
        <title>hello world</title>
        <meta charset="utf-8"/>
        
        <script src="js/jquery-3.3.1.min.js"></script>
        <script src="js/popup.js"></script>
    </head>
    <body style="width: 400px;height:400px;">
        <h2>总金额:<span id="total"></span></h2>
        <h2>限制金额:<span id="limit"></span></h2>
        <h2>本次使用:<input type="text" id="amount"/></h2>
        <input type="submit" id="add" value="添加"/>
    </body>
</html>

3.javaScript文件

用于实现插件的逻辑功能,是我们学习插件开发需要重点关注的部分。示例:js/eventPage.js

// 1.创建contextMenus
var contextMenu = {
    id: "addAmount",
    title: "添加消费",
    // contexts:page,video....
    contexts: ["selection"]
}
chrome.contextMenus.create(contextMenu);
// 2.为contextMenus添加点击事件的监听
chrome.contextMenus.onClicked.addListener(function(clickData){
    // clickData.menuItemId:被点击的菜单选项卡的id
    // clickData.selectionText:选中的内容
    if(clickData.menuItemId == "addAmount" && clickData.selectionText){
        var amount = parseFloat(clickData.selectionText);
        // 1.从浏览器中获取存储的金额
        chrome.storage.sync.get(['total','limit'],function(budget){
            var totalAmount = 0;
            if(budget.total){
                totalAmount = parseFloat(budget.total);
            }
            // 2.将本次金额加到总金额并存储
            
            if(amount){
                totalAmount += amount;
                chrome.storage.sync.set({'total':totalAmount},function(){
                    if(totalAmount > parseFloat(budget.limit)){
                        var notifyOptions = {
                            // type:basic,imge,simple,list
                            type: 'basic',
                            title: '金额超出限制',
                            iconUrl: 'img/logo.png',
                            message: '您消费的总金额已超出上限'
                        }
                        chrome.notifications.create('limitNotify',notifyOptions);
                    }
                });
            }
        });
    }
});

chrome.storage.onChanged.addListener(function(changes,storageName){
    // changes.total.newValue:总金额变化后的值
    chrome.browserAction.setBadgeText({"text":changes.total.newValue.toString()});
    chrome.browserAction.setBadgeBackgroundColor({"color":[0,255,0,255]});
});

4.css文件

用于设置插件的html样式,或者用于向浏览器打开的网页中注入的样式文件,可以实现对浏览器打开的网页进行样式修改。示例:css/content.js

#bottom_layer .s-bottom-layer-content{
    background-color: blue;
}

5.图片文件

用于设置插件的图标,或者用于改变浏览器打开的网页的图片,如更改网页背景图片、向网页中添加图片等。

打开视频教程

关注公众号查看作者学习方法和心得, 快速上手高效学习

chrome浏览器插件开发视频教程 第2课插件的文件结构插图1

版权声明:本文为博主「ROSHAN」的原创文章

原文链接:Chrome浏览器插件开发视频教程 第1课初识chrome插件-roshan的博客 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值