首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从零实现Chrome扩展

虽然FireFox是第一个引入浏览器扩展浏览器,但是Chrome扩展系统得到了广泛认可和使用,也已经成为了现代浏览器中最流行扩展系统之一。...但是无论如何,谷歌都准备逐步废弃v2而使用v3,那么我们在这里也是基于v3来实现Chrome扩展。...选用Rspack主要原因是其编译速度会快一些,特别是复杂项目中Webpack特别是CRA创建项目打包速度简直惨不忍睹,这边有个项目改造前后dev速度对比大概是1min35s : 24s,速度提升还是比较明显...我们使用devServer是更希望能够借助于HMR能力,但是这个能力Chrome扩展v3限制下目前表现并不好,所以在这里这个能力先暂时放下,毕竟实际上v3当前还是收集社区意见来更新。...那么现在扩展已经发展到了v3版本,v3版本中一个非常大区别就是Service Workers不能保证常驻,需要主动唤醒,所以chrome://extensions/中如果是v3版本插件,我们会看到一个

39120

浏览器架构温故知新

为了安全起见,Chrome 沙箱模式下为每个选项卡创建一个单独渲染进程。 GPU 进程最初是为了3D CSS 效果,后来扩展到绘制网页和 Chrome UI 界面。...2022年3月ー Chrome98稳定版:清单 V3成为新插件默认版本,并继续支持清单 V2。...January 2024 — Manifest V3 发布预稳定版本:Manifest V3到了一个稳定状态,鼓励开发人员将他们扩展迁移到 V3,并提供了全面的文档和迁移指南。...Manifest V2 (MV2)是当前 Chrome 扩展中广泛使用主流版本,它提供了一个健壮框架,用于构建具有增强浏览器功能特性和功能扩展。...4.3.3 后台脚本 Chrome 扩展后台脚本具有最长生命周期,并且浏览器打开连续运行。它拥有广泛权限,允许访问大多数 Chrome 扩展 API 和跨源请求,而不受 CORS 限制。

8810
您找到你想要的搜索结果了吗?
是的
没有找到

Chrome 拓展开发系列:什么是 Chrome 拓展?

通过创建 Chrome 扩展,你能够触达大量用户,从而推广你应用、服务或功能。开发文档和工具Chrome 提供了丰富开发文档和工具,使得创建扩展变得相对容易。...Chrome 扩展使用 HTML、CSS 和 JavaScript 进行开发,这些都是熟悉且广泛使用前端技术。...开发者模式安装解压包右上角打开开发者模式解压.crx或其它压缩包文件,点击左上角加载已解压拓展程序,导入刚才解压文件夹即可Chrome 拓展开发基本步骤创建清单文件(manifest.json):...对技术热情是不断学习和分享动力。博客是一个关于Java生态系统、后端开发和最新技术趋势地方。...作为一个 Java 后端技术爱好者,不仅热衷于探索语言新特性和技术深度,还热衷于分享见解和最佳实践。相信知识分享和社区合作可以帮助我们共同成长。

25440

Chrome浏览器63版测试版新特性

_ / }); }); 上面这段代码就是一个例子,演示了使用 import(specifier)函数,如何在某个事件发生后导入JavaScript。...访问权限界面的变化 网站需要特殊权限时,就会发出一个权限请求。目前安卓系统Chrome浏览器上,权限请求只出现在屏幕下方一个横条里,不理也没关系。...为了增进互用性,如果收到回调函数类型不是事件侦听器( EventListener),或者类型是 null、未定义 undefined,新版本会抛出一个类型错误( TypeError)。...这是一个回调函数,注册了之后,就可以一个Promise得到满足或遭到拒绝触发。...---- 往期精选文章 使用虚拟dom和JavaScript构建完全响应式UI框架 扩展 Vue 组件 使用Three.js制作酷炫无比无穷隧道特效 一个治愈JavaScript疲劳学习计划 全栈工程师技能大全

1.6K50

浏览器插件开发-manifest文件解读「建议收藏」

大家好,又见面了,是你们朋友全栈君。...清单文件格式版本, Chrome 18 开发 写 2 即可 2. name 必填 插件名称 3. version 必填 插件版本,发布新版本后,浏览器会比较其已安装插件版本,有更新版本则会自动更新...猜测 browser_action 适用于用户需要点击图标后弹窗中操作场景 page_action 试用与在后台运行,重要工作是监听用户行为插件 官方建议:如果要实现功能只针对某一个页面有用则建议使用...允许用户调用扩展临时访问当前活动选项卡, background 后台权限,可以用来增加Chrome 运行时间,即开机即运行(虽然是不可见) bookmarks 书签操作权限 browsingData...、修改、onChange 监听 history 浏览器历史记录操作权限 storage chrome.storage 使用权限(注意不是浏览器 localStorage) tabs 选项卡权限,允许创建

2.2K20

使用神器eruda 进行移动端调试

截止至本文发稿之日,erudaGitHub上已经有2.7K个star ? 你是否被以下情况所困扰?? ?PC上调试好好页面,运行在手机端直接崩溃,很难判断究竟发生了什么 ?...eruda是什么 手机端遇到问题,你最希望是手机端可以像PC上Chrome那样——用调试工具看看究竟发生了什么。 于是就有了eruda。...Eruda 是一个专为手机网页前端设计调试面板,类似 DevTools 迷你版,其主要功能包括:捕获 console 日志、检查元素状态、显示性能指标、捕获XHR请求、显示本地存储和 Cookie...功能清单 1.按钮拖拽,面板透明度大小设置。 ?...如何使用 通过CDN使用: ? 通过npm安装: ? 页面中加载脚本: ? Js文件对于移动端来说略重(gzip后大概80kb)。建议通过url参数来控制是否加载调试器,比如: ?

2.4K30

JavaScript 开发中常见错误解决小总结

Chrome DevTools 中常见错误排查 Chrome 开发者工具 Console 相当好用,最常使用不外乎是通过 console.log 展示出变量或运算结果,如果符合预期则皆大欢喜。...'小明' family: { name: '小明家' } } 语法解析错误,因为在对象结构中缺少一个逗号,除了通过 VSCode 中查看外,也可以直接通过 Chrome Console...: a is not defined 引用错误:由于变量 a 未定义,所以使用这个变量时会出现未定义提示,只要先定义好这个变量即可。...,这类型错误通常是以下几种: 试图获取 undefined、null 属性 尝试调用非函式变量或表达式(例如: 'text'()) ❝排查重点:获取变量前先确认其当前数据类型及结构 ❞ Uncaught...这类错误也很常见,却不容易找到出错原因,其主要原因是递归超过了环境限制(使用框架也很常见),如果遇到这错误建议改写当前调用函数方式。

3K20

chrome浏览器扩展v3版本配置项整理备忘

'; object-src 'self'", //原文:此政策涵盖您扩展程序使用任何[沙盒扩展程序页面];具体不是很明白,但是参数值得是self,即当前自己 "sandbox...是service_worker:'xxx',只能引入一个js,v3版最大改动应该就是这里了,扩展程序管理界面的插件那个“背景页”也将变成“Service Worker”,改动之后background.js...//这些 API 引入时扮演了不同角色,但随着时间推移它们变得多余,因此 Manifest V3 中,我们将它们统一为单个 `"action"` API; //配置上action:{},可以是空对象...:chrome.action.onClicked.addListener, "action": { }, //通过网络访问资源,v2是提供一个数组,v3提供数组对象,每个对象可以映射到一组资源到一组...('触发成功了'); //返回一个内容到发送消息回调函数中 }); //发送消息,触发上面的onMessage chrome.runtime.sendMessage('', {text: '是个测试内容

37640

10 种最常见 Javascript 错误

当你读取一个未定义对象属性或调用其方法,这个错误会在 Chrome 中出现。 您可以很容易 Chrome 开发者控制台中进行测试(尝试)。 ?...所以,如果 DOM 元素之前有一个标签,脚本标签内 JS 代码将在浏览器解析 HTML 页面执行。 如果在加载脚本之前尚未创建 DOM 元素,则会出现此错误。...TypeError: ‘undefined’ is not a function 当您调用未定义函数,这是 Chrome 中产生错误。...ReferenceError: event is not defined 当您尝试访问未定义变量或超出当前范围变量,会引发此错误。 您可以 Chrome 浏览器中轻松测试。 ?...如果在使用事件处理系统遇到此错误,请确保使用传入事件对象作为参数。像 IE 这样旧浏览器提供了一个全局变量事件,但并不是所有浏览器都支持。像 jQuery 这样试图规范化这种行为。

6.7K80

谷歌「不是机器人」按钮隐藏了,但你隐私暴露了

由于被频繁破解,目前谷歌已经将其升级到了第三代——reCaptcha v3。新版 reCaptcha 通常不会弹出「不是机器人」复选框让用户打钩,似乎提升了用户体验。...现在,当你一个使用 recaptcha v3 网站上输入一个表单,你不会看到「不是机器人」复选框,也不需要证明你知道猫样子。相反,你什么都看不见。 「这对用户来说是更好体验。...「你必须了解正常用户在网站上行为,并模仿足够好,才能骗过我们,」他说。「这不仅仅是『假装是人』那么简单。」...谷歌现在也测试一个企业版 reCaptcha v3,在这个版本中,谷歌为那些需要更加精确用户风险水平数据企业创建一个自定义 reCaptcha,以保护他们网站算法不受恶意用户和机器人程序攻击...Marcos Perona 和 Akrout 是两名技术顾问,他们浏览器上访问使用 reCaptcha v3 测试网站发现,如果已经登录到 Google 帐户,他们 reCaptcha 分数总是低风险

2.4K50

从油猴脚本管理器角度审视Chrome扩展

从油猴脚本管理器角度审视Chrome扩展 之前一段时间,需要借助Chrome扩展来完成一个需求,当时还在使用油猴脚本与浏览器扩展之间调研了一波,而此时恰好又有一些做还可以油猴脚本 TKScript...虽然FireFox是第一个引入浏览器扩展浏览器,但是Chrome扩展系统得到了广泛认可和使用,也已经成为了现代浏览器中最流行扩展系统之一。...但是无论如何,谷歌都准备逐步废弃v2而使用v3,那么我们在这里也是基于v3来实现Chrome扩展。...我们使用devServer是更希望能够借助于HMR能力,但是这个能力Chrome扩展v3限制下目前表现并不好,所以在这里这个能力先暂时放下,毕竟实际上v3当前还是收集社区意见来更新。...那么现在扩展已经发展到了v3版本,v3版本中一个非常大区别就是Service Workers不能保证常驻,需要主动唤醒,所以chrome://extensions/中如果是v3版本插件,我们会看到一个

7110

1000个项目中前10名JavaScript错误介绍

当你读取一个未定义对象属性或调用其方法,这个错误会在 Chrome 中出现。 您可以很容易 Chrome 开发者控制台中进行测试(尝试)。...所以,如果 DOM 元素之前有一个标签,脚本标签内 JS 代码将在浏览器解析 HTML 页面执行。 如果在加载脚本之前尚未创建 DOM 元素,则会出现此错误。...TypeError: ‘undefined’ is not a function 当您调用未定义函数,这是 Chrome 中产生错误。...ReferenceError: event is not defined 当您尝试访问未定义变量或超出当前范围变量,会引发此错误。 您可以 Chrome 浏览器中轻松测试。...如果在使用事件处理系统遇到此错误,请确保使用传入事件对象作为参数。像 IE 这样旧浏览器提供了一个全局变量事件,但并不是所有浏览器都支持。像 jQuery 这样试图规范化这种行为。

6.2K10

干货 | 盘点 Chrome 插件开发中那些关键点!

最近在开发者模式下调试 Chrome 插件,发现安装扩展后默认会报错误,提示 v2 版本已经废弃,相关 API 功能将在明年不可使用,建议升级到 v3 版本 本篇文章将基于 v3 版本,盘点 Chrome...Chrome 扩展图标设置、popup 页面等内容 v3使用关键字 action 取代 v2 中关键字 browser_action //v3 ......所以 v3 版本中,使用 service_worker 关键字智能化启动脚本 PS: v3 中不能通过关键字 persistent 指定脚本生命周期 //v3 ......定时任务 v2 中实现定时任务、延时任务非常方便,我们只需要在 background.js 创建一个定时任务,然后设置 persistent 为 true,这样就能保存定时任务一直在后台执行 由于...操作步骤如下: manifest 设置 alarms 权限 background 中,使用 alarms 创建定时任务 //v3 background.js ... function peroidFunc

68820

机器学习论文复现,这五大问题你需要注意

试图复现机器学习论文,我们经常遇到哪些问题呢?新加坡机器学习工程师 Derek Chia 对此进行了总结。 ? 最初接触机器学习,花费了大量时间来阅读论文,并尝试实现。当然,不是天才。...复现机器学习论文常见问题 复现过程中常见问题如下所示: README 文件不完整或缺失; 未定义依赖项、代码存在 bug、缺少预训练模型; 未公开参数; 私有数据集或缺少预处理步骤; 对 GPU...实际上,这些内容已经 Papers with Code 发布《机器学习代码完整性自查清单》中列出(该清单已成为 NeurIPS 2020 代码提交流程一部分)。...Joelle Pineau 发布机器学习可复现性检查清单(图源:https://www.cs.mcgill.ca/~jpineau/ReproducibilityChecklist.pdf) 未定义依赖项...顺便说一句,Facebook HiPlot 是一个很好工具,帮助你使用不同参数组合时将模型结果可视化。

2.7K20

Eruda 一个小而美的调试神器

: [一个被人忽略宠儿~] 这里是IT平头哥联盟,是首席填坑官—苏南,用心分享 做有温度攻城狮。...虽说日常移动端开发,一般都是在用Chrome DevTools浏览器移动端模式模拟各种手机型号来进行开发和调试,确保功能/页面展示等都没有问题了,才会提交测试;   但是前面都讲了,只是模拟、模拟...,界面也好看; 说了这么多 来看看它到底长啥样吧: [做移动端Web开发一大痛点就是] 功能清单 console console 作用就不用废话了,大家都懂; 早期console诞生之前,我们调试功能都是...甚至我们还能像chrome,直接在控制台执行js代码; [微信开发必备 h5开发调试,利器Eruda ] Elements eruda 它没有PC端这么直观,但也因为移动端展示方式局限性, 它能把每一个父节点下一个子节点全部列出来...月入三万 还能少了你一个鸡蛋 如何给localStorage设置一个有效期?

1K30

第二章 你第首个Electron应用 | Electron in Action(中译)

在上一章高层次讨论中,到了Electron是一个类似于Node运行时。这仍然是正确,但是想回顾下这一点。...我们可以使用这个构造函数创建尽可能多渲染器进程,只要我们喜欢,或者我们计算机可以处理。当应用程序就绪,我们创建一个BrowserWindow实例。让我们按照以下方式更新代码。...例子中,_dirname扩展为/Users/stevekinney/Projects/bookmarker/app。...如果内容不匹配有效URL模式,Chromium将把该字段标记为无效。不幸是,我们无法访问Chrome或Firefox中内置错误消息弹出框。...我们使用一个匿名函数传递带有错误消息URL。这主要是为了提供更好错误消息。如果不希望错误消息中包含URL,则没有必要这样做。 图2.32 获取、解析和呈现链接捕获错误: .

4.6K30

Chrome 拓展开发系列:数据存储之 chrome.storage 和 localStorage

前言chrome.storage 和 localStorage 都是浏览器中用于存储数据机制,下面我们一起聊聊它们是什么,区别以及使用示例。...sessionStorage为每一个给定源(origin)维持一个独立存储区域,该存储区域页面会话期间可用(即只要浏览器处于打开状态,包括页面重新加载和恢复)。...即使使用分离式隐身行为,用户扩展程序设置也会保留。可以读取管理员为扩展程序配置企业策略(使用 storage.managed 和架构)。...chrome.storage.sync 提供了在用户使用 Chrome 登录所有设备之间同步数据能力,localStorage 不支持同步。...总结在进行 Chrome 拓展开发,大多数情况都建议使用 chrome.storage 存储数据,方便进行数据查询以及支持实现设备之间同步。

71140

eruda 一个被人遗忘调试神器

Eruda 是一个专为前端移动端、移动端设计调试面板,类似Chrome DevTools 迷你版(没有chrome强大 这个是可以肯定),其主要功能包括:捕获 console 日志、检查元素状态、...虽说日常移动端开发,一般都是在用Chrome DevTools浏览器移动端模式模拟各种手机型号来进行开发和调试,确保功能/页面展示等都没有问题了,才会提交测试;   但是前面都讲了,只是模拟、模拟...小而美 那叫丰满 功能清单 console - console 作用就不用废话了,大家都懂; - 早期console诞生之前,我们调试功能都是alert过多,包括现在移动端,在手机上我们想看到参数值...、数据、节点等都以alert打印为多数,但过于粗暴、而且一不小心有可能带到线上去了; - eruda 能帮我们解决这个问题;所有的日志、错误都能帮我们捕获到 - 甚至我们还能像chrome,直接在控制台执行...console 功能展示 Elements - eruda 它没有PC端这么直观,但也因为移动端展示方式局限性, - 它能把每一个父节点下一个子节点全部列出来;你点击某个子节点,列出当前节点全部属性

85520

HTML5缓存和GPS定位

html5中提供了两种客户端存储数据新方法localStorage和sessionStorage ,并且html5还支持内嵌浏览器中WebSQL数据库,下面就介绍一下这三种存储数据使用方式。...,不过示例用没有使用第五个参数。...应用程序缓存为应用带来三个优势:    1.离线浏览 - 用户可在应用离线使用它们    2.速度 - 已缓存资源加载更快    3.减少服务器负载 - 浏览器将只从服务器下载更新过或更改过资源...manifest 文件 manifest 文件是一个扩展名为:".appcache" 一个简单文本文件,在这个文件里指定需要被缓存内容,以及不需要缓存内容。...运行结果: 浏览器会询问是否允许定位,点击不允许的话会抛出一个错误对象,然后执行错误处理函数进行相应处理: ? 如果获取地理位置过程出错了,也会执行错误处理函数,打印出相应错误类型: ?

2.4K20
领券