Chrome插件开发教程

这篇具有很好参考价值的文章主要介绍了Chrome插件开发教程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文将详细介绍如何开发一款Chrome插件,包括插件的介绍、开发配置与调试。不包含插件的发布、审核等内容。

通过阅读本教程,你能够:

  • 了解浏览器器插件,这里专指 Chrome Extension(CE)的基本知识和运行原理
  • 了解如何开发CE的界面和逻辑
  • 调试插件,根据错误信息做出修复

什么是浏览器插件

浏览器插件是一种可增强网页功能的嵌入程序。有了插件,用户的使用不再局限于网页,还可以享用插件带来的增强功能。用户只需到官方插件商店搜索、下载、安装即可使用,非常便捷。
插件商店由不同的浏览器厂商维护,比如你要在Chrome上使用插件,要到Chrome Webstore下载安装。Firefox上亦然。

创建 manifest

新建文件夹,命名CE-Demo,增加一个manifest.json的文件,内容如下:

{
  "name": "CE-Demo",
  "description": "CE-Demo's description shows here!",
  "version": "0.0.1",
  "manifest_version": 3
}
复制代码

该文件描述了插件的基本属性信息、代码的运行路径等。后面我会不断地丰富其内容。

加载插件

这里我们直接载入整个目录(尚未打包):

1.地址栏输入chrome://extensions进入插件管理页面。
2.选中界面右上角的开发者模式
3.点击左上角的加载已解压的扩展程序,并选中刚才的插件文件夹

Chrome插件开发教程

插件已经成功载入。
可以点击扩展程序按钮,鼠标移动到插件右侧的固定按钮,固定到标签栏里。
Chrome插件开发教程

标签栏多了个icon图标,点击可唤出插件的popup界面:
Chrome插件开发教程

插件不会热更新,记得每次修改代码后点击刷新icon载入最新代码

添加功能

我们将实现一个简易版的历史记录插件。

注册 background.js

它是一种后台脚本,浏览器会在插件安装或重新加载时扫描它并初始化(事件的监听等)。它是整个插件的重要组成部分。必须在manifest里配置。

{
"name": "CE-Demo",
  "description": "I am a demo",
  "version": "0.0.1",
  "manifest_version": 3,
  "background": {
    "service_worker": "background.js"
  }
}
复制代码

同时在插件目录添加background.js文件,包含以下代码:

chrome.runtime.onInstalled.addListener(() => {
  console.log('后台脚本运行成功!')
  chrome.storage.sync.set({ history: [] });
});
复制代码

代码将在插件安装完毕后,做两件事:

1.打印一段日志信息
2.通过storage API 设置一个初始值为空数组的存储字段。

要使用storage,需在manifest添加该权限:

{
    ...
    "permissions": ["storage"]
    ...
}
复制代码

点击server worker链接打开devtools界面,即可看到日志信息:

Chrome插件开发教程
Chrome插件开发教程

添加历史界面

这里,我们选择popup的交互形式:当用户点击标签栏里插件图标时展示用户的访问历史(仅含插件安装后的历史)。
我们需要覆盖默认的popup界面,修改manifest:

{
  ...
  "action": {
    "default_popup": "popup.html"
  },
  ...
}
复制代码

在插件目录新增三个文件:popup.html、popup.js、popup.css:

<!DOCTYPE html>
<html>
  <head>
    <link rel="stylesheet" href="popup.css">
  </head>
  <body>
    <div id="container">
        暂无浏览记录~
    </div>
    <script src="popup.js"></script>
  </body>
</html>
复制代码
chrome.storage.sync.get("history", ({ history }) => {
  const contentHTML = history.length === 0
      ? "暂无浏览记录~"
      : history
          .map((record) => {
            return `
    <div class="item-box">
            <div class="item-box_time">${record.time}</div>
            <a class="item-box_text" href="${record.url}">${record.title}</a>
        </div>
    `;
          })
          .join("");
          document.querySelector('#container').innerHTML = contentHTML
});
复制代码

上述代码先从storage里读取history内容,再将内容组装成html插入到文档中。

记录浏览历史

插件提供了内容脚本 Content Scripts(CS)的概念,当用户打开并访问某个网站时,浏览器将CS注入网站的文档里执行。
因此,我们需在CS脚本里编写记录的逻辑。
往manifest里添加CS:

{
  ...
  "content_scripts": [
    {
      "matches": ["*://*/*"],
      "js": ["content/index.js"]
    }
  ]
}
复制代码

插件目录里新增目录content并添加index.js文件:

chrome.storage.sync.get("history", ({ history }) => {
  console.log("history--->", history);
  history.unshift({
    title: document.title,
    url: location.href,
    time: new Date().toLocaleString(),
  });
  chrome.storage.sync.set({
    history
  });
});
复制代码

上述代码获取访问的页面的 标题,url,访问时间存储到 storage里。
随便访问几个网页后,点击插件图标可以看到:
Chrome插件开发教程

添加自定义icon
默认icon比较简陋,我们用一张熊猫图片作为插件的icon。
新增assets目录,放一个icon.png文件。
修改manifest:

{
    "action": {
        "default_icon": {
          "16": "/assets/icon.png"
    }
  }
}
复制代码

Chrome插件开发教程

源码附件已经打包好上传到百度云了,大家自行下载即可~

链接: https://pan.baidu.com/s/14G-bpVthImHD4eosZUNSFA?pwd=yu27
提取码: yu27
百度云链接不稳定,随时可能会失效,大家抓紧保存哈。

如果百度云链接失效了的话,请留言告诉我,我看到后会及时更新~

开源地址

码云地址:
http://github.crmeb.net/u/defu

Github 地址:
http://github.crmeb.net/u/defu

链接:https://juejin.cn/post/7122439073058258958文章来源地址https://www.toymoban.com/news/detail-472441.html

到了这里,关于Chrome插件开发教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何快速使用Vue3在electron项目开发chrome Devtools插件

    为了方便快速建立项目,我已经写好脚手架,直接clone项目,快速开发 点击快速进入源代码 拉取代码 安装依赖 运行项目 打包项目 打开chrome://extensions/,打开开发者模式,直接把打包产物拖到窗口即可 具体代码进入源代码 主要使用我另外开发的插件chrome-extension-ipc实现通讯

    2024年02月06日
    浏览(32)
  • Chrome 谷歌浏览器获取网址映射 IP 地址 DNS 域名解析过程介绍(详细教程)

    步骤 说明 ① 浏览器输入:http://www.baidu.com ② 查找浏览器自身 DNS 缓存:chrome://net-internals/#dns ③ Windows 系统:查找系统 hosts 文件、Linux 系统:查找 /etc/hosts 文件 ④ 浏览器就会发起一个 DNS 系统调用(向本地域名服务器发起域名解析请求) ⑤ 本地域名服务器 LDNS 替我们的浏

    2024年02月03日
    浏览(44)
  • chrome插件开发实例08- 使用Vue.js开发chrome插件

    目录 背景 演示 功能介绍 插件下载 注意写法:  将  下面的两个插件 改写成vue.js , elementui  实现

    2024年02月13日
    浏览(31)
  • chrome 插件开发

    参考: https://www.cnblogs.com/amboke/p/16718855.html 设计和实现一个 Chrome 插件提升登录效率_若川的技术博客_51CTO博客 最新版 V3 chrome 插件开发~ demo + 坑 - 掘金  官方文档:https://developer.chrome.com/docs/extensions/

    2024年02月14日
    浏览(28)
  • chrome拓展插件开发中使用chrome.storage本地存储

    在扩展程序中本地存储数据可以通过  chrome.storage  API 实现,和 web 中的 localstorage 在某些方面是有区别的,chrome.storage 已经做了优化。 与 localStorage 的区别: 用户数据可以与 chrome 自动同步(通过 storage.sync),只要用户登录了 chrome 账号,则能够全量同步浏览器 扩展程序的脚

    2024年02月01日
    浏览(27)
  • 超详细API插件使用教程,教你开发AI垃圾分类机器人

    本文分享自华为云社区【案例教学】华为云API对话机器人的魅力—体验AI垃圾分类机器人,作者:华为云PaaS服务小智。 体验用Huawei Cloud API开发AI垃圾分类机器人,并学习AI自然语言的情感分析、文本分词、文本翻译等能力。 API插件支持 VS Code IDE、IntelliJ IDEA等平台、以及华为

    2024年02月08日
    浏览(28)
  • Chrome 插件开发覆写xhr请求

    这几天搞chrome谷歌浏览器插件遇到个问题 我想拦截网页请求,并把数据传递到下一个子窗口。获取responsebody内容 background.js 单纯靠sendmessage实现不了通讯 最开始的时候想用chrome.webRequest.onCompleted.addListener去实现拦截,注入后发现最多只能取到header信息,回调函数里面的对象并

    2024年02月11日
    浏览(31)
  • chrome插件开发实例06-定制自己的Chrome DevTools调试工具

    目录 Chrome DevTools 调试工具 演示 ​编辑 源码  devtools.html devtools.js panel.html

    2024年02月13日
    浏览(31)
  • chrome插件开发实例03-使用 chrome.storage API永久保存数据

    目录 防止数据丢失 使用chrome.storage API 功能 功能演示 源代码 manifest.json

    2024年02月14日
    浏览(26)
  • Chrome如何安装插件(文件夹)

    说明:插件文件夹 说明:找到插件的位置   说明:那还要进入文件里面。   说明:如果已经安装了插件,那么需要查看插件的位置。chrome输入 chrome://version/          

    2024年02月12日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包