从0开始开发一个chrome插件

简介: 1、manifest.json文件说明请参考上一篇文章,这此在文件中新增加了一个属性:```c "content_scripts":[{ "matches":["http://*/*","https://*/*"], "js":[ "libs/jquery-3.6.0.min.js", //引用的jquery库 "content_script.js" //新建js文件用于业务处理 ], "css":["base.css"], //css "run_at":

1、manifest.json文件说明请参考上一篇文章,这此在文件中新增加了一个属性:

 "content_scripts":[{
        "matches":["http://*/*","https://*/*"],
        "js":[
            "libs/jquery-3.6.0.min.js", //引用的jquery库
            "content_script.js"  //新建js文件用于业务处理
        ],
        "css":["base.css"], //css
        "run_at": "document_end"  //文档加载完成支线
    }],

manifest匹配地址的页面在刷新时会直接执行这里的代码;

2、在content_script.js编码业务处理逻辑:
例如编写一段去广告的js代码,会在页面加载完成后,将页面指定属性隐藏,实现去广告效果;

//去广告
function removeCSDNAd(){
    $('#footerRightAds').hide()
    $('#aw0').hide()
    console.log('隐藏广告')
    $('.hide-preCode-bt').click()
    console.log('点击更多按钮')
}
removeCSDNAd();

3、backgroud.js
backgoud.js只能执行和chrome扩展相关的函数,无法操作dom
可以再其中创建自定义菜单:


const menu = {
    menus: [
        {
            id: "main",
            visible: true,
            title: "常用操作",
        },
        {
            id: "open",
            type: "normal",
            visible: true,
            title: "打开必应",
            parentId: "main"
        },
        {
            id: "del",
            visible: true,
            type: "normal",
            title: "执行函数",
            parentId: "main"
        },
    ],
};

function toUrl(info) {
    let url;
    switch (info.menuItemId) {
        case "open":
            url = "https://cn.bing.com";
            chrome.tabs.create({
                url,
            });
            break;
        case "del":
            sendToContent();
            break;
    }
    
}

const createMenu = () => {
    menu.menus.forEach(({ fn, ...data }) => {
        chrome.contextMenus.create(data);
    });
    chrome.contextMenus.onClicked.addListener(toUrl);
};



//安装时 创建菜单
chrome.runtime.onInstalled.addListener(async () => {
   createMenu();
   console.log('创建了菜单')
 
   
})

3、popup.js:
popup.js是popup.html打开时加载的js.同样可以操作dom;
参考上一篇文章;

4、自定义新打开标签页
在manifest.json中可以自定义标签页:

     "chrome_url_overrides":
     {
         "newtab": "newtab.html"
     },

配置完成后,就可以打开自定义的标签页‘

下一篇文章,介绍一下各个js之间的通信;

相关文章
|
1月前
|
Web App开发 Windows
win 快捷键大全,虚拟窗口、桌面等操作细节,可以使界面整洁,分类工作;Chrome快捷键,都是一些开发的骚操作
这篇文章提供了Windows操作系统和Chrome浏览器的快捷键大全,以及Xshell的快捷键操作,旨在帮助用户提高工作效率和界面管理。
113 2
|
1月前
|
Web App开发 JSON JavaScript
vue学习:chrome 中 vuetools 开发插件 的下载、安装
这篇文章介绍了如何在Chrome浏览器中下载、安装并测试Vue.js开发插件——vue-devtools。
243 0
vue学习:chrome 中 vuetools 开发插件 的下载、安装
|
3月前
|
Web App开发 存储 前端开发
《Chrome谷歌插件Top10》开发最好用的谷歌插件
本文介绍了多个实用的浏览器插件及其安装方法。包括CSDN浏览器助手,提供高效开发工具;FeHelper,前端必备工具,支持格式化、压缩等功能;uBlock Origin,有效屏蔽广告和弹窗;PageLiner,网页标尺工具,便于前端设计;Fatkun,批量下载图片;Smallpdf,文件转换工具;Octotree,GitHub代码树插件;Awesome Screenshot,截图与录屏工具;ColorZilla,颜色拾取器;Dark Reader,暗黑模式阅读插件。安装方式有通过Chrome商店搜索或下载crx插件本地安装。
66 11
|
3月前
|
Web App开发 JSON 前端开发
30个Chrome 灵魂插件!
30个Chrome 灵魂插件!
|
3月前
|
Web App开发 JSON 安全
【跨域难题终结者】:一键解锁Chrome浏览器神秘设置,彻底告别开发阶段的跨域烦恼!
【8月更文挑战第20天】跨域是前端开发常遇难题,尤其在前后端分离项目中。浏览器因安全考量会阻止不同源间的请求。本文对比CORS、JSONP、代理服务器等解法,并介绍开发阶段通过调整Chrome设置来临时禁用跨域限制的方法,提供启动Chrome及使用`fetch`API示例,适合快速测试。但请注意这不适用于生产环境,存在一定安全风险。
783 1
|
3月前
|
Web App开发 前端开发 JavaScript
手摸手教你,从0到1开发一个Chrome浏览器插件
开发 Chrome 插件既有趣又具成就感。本教程将引导你从零开始,逐步创建一个简单的 Chrome 插件。首先了解 Chrome 插件是可增强浏览器功能的小程序。以一个基础示例开始,你将学习如何设置开发环境,包括安装 Chrome 和准备文本编辑器,并掌握 HTML、CSS 和 JavaScript 的基础知识。接着,我们将构建插件的基本结构,涉及 `manifest.json` 配置文件、`background.js` 后台脚本、`popup.html` 用户界面以及 `style.css` 样式表。
304 8
|
3月前
|
Web App开发
Chrome 护眼模式 - 黑暗模式 - 夜眼(Night Eye) 插件
Chrome 护眼模式 - 黑暗模式 - 夜眼(Night Eye) 插件
134 0
Chrome 护眼模式 - 黑暗模式 - 夜眼(Night Eye) 插件
|
3月前
|
Web App开发 人工智能 iOS开发
灵办AI助手Chrome插件全面评测:PC Web端的智能办公利器
《灵办AI助手:Mac OS下的高效办公利器》 灵办AI助手是一款专为提升工作效率而设计的浏览器插件,适用于Chrome、Edge等主流浏览器,在Mac OS系统中表现尤其出众。本文将深入评测其核心功能,包括网页翻译、AI对话、AI阅读及代码辅助等,展示如何在实际工作中运用这些功能来提升效率。此外,文中还提供了详细的安装与设置指南,帮助读者轻松上手这款办公神器。无论你是学生、职场人还是开发者,灵办AI助手都能成为你提高生产力的理想选择。
119 0
|
2月前
|
Web App开发 数据采集 存储
WebDriver与Chrome DevTools Protocol:如何在浏览器自动化中提升效率
本文探讨了如何利用Chrome DevTools Protocol (CDP) 与 Selenium WebDriver 提升浏览器自动化效率,结合代理IP技术高效采集微博数据。通过CDP,开发者可直接操作浏览器底层功能,如网络拦截、性能分析等,增强控制精度。示例代码展示了如何设置代理IP、cookie及user-agent来模拟真实用户行为,提高数据抓取成功率与稳定性。适用于需要频繁抓取互联网数据的应用场景。
433 3
WebDriver与Chrome DevTools Protocol:如何在浏览器自动化中提升效率
|
8天前
|
Web App开发 缓存 安全
WIN11 Chrome 双击打不开闪退及Chrome浏览器不能拖拽文件crx
【11月更文挑战第6天】本文介绍了 WIN11 系统中 Chrome 浏览器双击打不开闪退及不能拖拽文件 crx 的原因和解决方法。包括浏览器版本过旧、扩展程序冲突、硬件加速问题、缓存过多、安全软件冲突、系统文件损坏、用户配置文件损坏等问题的解决方案,以及 crx 文件的屏蔽、权限问题和文件格式问题的处理方法。