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

chrome插件开发备忘录

文章目录

    • 前言
    • 要点
    • 通信方式
    • 注意事项
    • 参考

前言

第一次接触到插件开发,起因是我用了十多年的一键上传需要升级了。之前的版本来自于有道云,是通过在书签栏加一个书签,然后将上传功能注入到当前页面的方式来实现的。一直也用得挺好,挺稳定,但有诸多限制,最主要是管理起来比较麻烦。于是决定采用chrome插件重写。

要点

  • 推荐采用v3版本的插件规范,v2在2023年就不支持了。
  • 插件可以通过Vue等前端框架开发,一个插件可以调用通常的js函数,还能调用chrome提供的一些API,v2和v3的API差别要留意。
  • 插件主要功能分布在popup, content-script和background三种类型的js文件中。popup和background可以进行跨域请求,content-script可以操作当前页面dom元素。三者可以通信,且传输的数据量上限size很大,尽可以放心在三者之间传输json数据
  • v3中,background只允许指定一个单一的文件,没有了v2的background页面,这样如果要调用第三方库,只能import第三方库的模块了
  • v3中,发送异步请求无需jquery和axios,直接采用fetch API即可

通信方式

  • content_scripts向popup主动发消息的前提是popup必须打开!否则需要利用background作中转;
    如果background和popup同时监听,那么它们都可以同时收到消息,但是只有一个可以sendResponse,一个先发送了,那么另外一个再发送就无效;

注意事项

  • popup不支持 inline script
    也就是说,下面写法不work:
<a onclick="handler()">Click this</a> <!-- Bad -->

要改成:

<a id="click-this">Click this</a> <!-- Fixed -->
And then attach the listener from a script (which must be in a .js file, suppose popup.js):// Pure JS:
document.addEventListener('DOMContentLoaded', function() {document.getElementById("click-this").addEventListener("click", handler);
});// The handler also must go in a .js file
function handler() {/* ... */
}

参考

  • https://www.cnblogs.com/liuxianan/p/chrome-plugin-develop.html
  • 参考了MrDoc和YoudaoNoteClipper,这两个插件比较庞大。
http://www.lryc.cn/news/13148.html

相关文章:

  • 实例1:控制树莓派板载LED灯闪烁
  • 华为OD机试题 - 最大排列(JavaScript)
  • 手动创建 vue2 ssr 开发环境
  • RHCE-操作系统刻录工具
  • PHP面向对象01:面向对象基础
  • 《爆肝整理》保姆级系列教程python接口自动化(十八)--重定向(Location)(详解)
  • MySQL的索引、视图
  • 【JavaWeb】网络层协议——IP协议
  • 【Python学习笔记】41.Python3 多线程
  • Windows 版本ffmpeg编译概述
  • NETCore下CI/CD之自动化测试 (详解篇)
  • Hoeffding不等式剪枝方法
  • 【算法】数组中的重复数字问题
  • 数值方法笔记2:解决非线性方程
  • 基于SpringBoot的在线文档管理系统
  • 软件体系结构(期末复习)
  • [vue3] pinia的基本使用
  • 进程和线程详解
  • 《刀锋》读书笔记
  • nginx中的ngx_modules
  • 设计模式之访问者模式
  • Go项目(三)
  • CTK学习:(一)编译CTK
  • 15种NLP数据增强方法总结与对比
  • Python每日一练(20230219)
  • vTESTstudio - VT System CAPL Functions - VT7001
  • 「可信计算」论文初步解读
  • CSDN 算法技能树 蓝桥杯-基础 刷题+思考总结
  • 信小程序点击按钮绘制定制转发分享图
  • Python自动化测试-使用Pandas来高效处理测试数据