Chrome插件实现问题之Manifest V2切换MV3会带来什么问题,如何解决

简介: Chrome插件实现问题之Manifest V2切换MV3会带来什么问题,如何解决

问题一:浏览器进程在插件运行中起到什么作用?


浏览器进程在插件运行中起到什么作用?


参考回答:

更多起到桥梁作用,作为中转可以实现Extension Page和content_script.js之间的消息通信。


关于本问题的更多回答可点击原文查看:

https://developer.aliyun.com/ask/623077



问题二:chrome插件的版本发展历程能简单说说么?


chrome插件的版本发展历程能简单说说么?


参考回答:

chrome插件存在三个版本,分别是Manifest V1、Manifest V2和Manifest V3。其中MV1版本已经被废弃了,目前市面上存在MV2和MV3版本,以MV2为主流,在被MV3慢慢取代。时间线:


关于本问题的更多回答可点击原文查看:

https://developer.aliyun.com/ask/623079



问题三:Manifest V2有哪些新特性?


Manifest V2有哪些新特性?


参考回答:

• 设置了默认的内容安全策略`script-src 'self'; object-src 'self';`。有关内容安全策略的详细配置,可以参考MDN文档;

• 默认情况下,插件包内的资源不再可供外部网站使用。需要通过清单web_accessible_resources属性将其显式列入白名单;

• browser action API更改;

• page action API更改;

• chrome.extension 代替 chrome.self 来指向插件本身;

• chrome.extension.getTabContentses和chrome.extension.getExtensionTabs废弃,使用extension.getViews替代;

• Port.tab废弃,使用runtime.Port替代。


关于本问题的更多回答可点击原文查看:

https://developer.aliyun.com/ask/623080



问题四:Manifest V3有哪些新特性?


Manifest V3有哪些新特性?


参考回答:

• Service worker替换Background Page;

• 网络请求修改废弃webRequest API使用新的 declarativentrequest API 来处理;

• 不再允许执行远程托管的代码,只能执行扩展包内包含的JS;

• Promises 已经被添加到许多方法中,但仍支持回调作为替代方法;

• Browser Action API 和 Page Action API被统一为单独的Action API;

• Web可访问的资源,可以只对指定的站点和扩展可用;

• 内容安全策略(CSP),现在可以为单个对象中的不同执行上下文指定单独的CSP;

• executeScript的变化,不能再执行任意字符串,只能执行脚本文件和函数。


关于本问题的更多回答可点击原文查看:

https://developer.aliyun.com/ask/623081



问题五:Manifest V2切换MV3会带来什么问题?


Manifest V2切换MV3会带来什么问题?


参考回答:

来的问题

• 由于background不再支持page页面配置background.html,因此也无法调用window对象上的XMLHttpRequest来构建ajax请求,也就是说我们不能像V2版本一样,在background.html中使用XMLHttpRequest来发送请求了,而是需要使用fetch来获取接口数据;

• 由于service workers是短暂的,在不使用时会终止,这意味着它们在整个插件运行期间会不断的启动、运行和终止,也就是不稳定的;因此我们可能需要对V2中background.js的代码逻辑进行一些改造,以往我们会习惯将一些数据直接存储到全局变量,比如像下面这样:

// V2 background.jslet saveUserName = "";

// 其他页面,比如content-script或者popup中存储数据chrome.runtime.onMessage.addListener(({ type, name }) => { if (type === "set-name") { saveUserName = name; }});

// 点击popup时展示数据chrome.action.onClicked.addListener((tab) => { // 这里saveUserName可能为空字符串 console.log(saveUserName, "saveUserName");});


关于本问题的更多回答可点击原文查看:

https://developer.aliyun.com/ask/623082

相关文章
|
6月前
|
Web App开发 存储 开发者
Chrome 插件上架发布全流程指南
浏览器插件开发完以后,要发布到 Chrome Web Store上,也是需要颇费一番周折的,本文就从注册账号开始,一直到最后发布上架的全流程进行指导,希望帮助你提供一些经验,避免踩坑,耗时耗力。
563 8
|
9月前
|
Web App开发 JSON JavaScript
vue学习:chrome 中 vuetools 开发插件 的下载、安装
这篇文章介绍了如何在Chrome浏览器中下载、安装并测试Vue.js开发插件——vue-devtools。
1758 0
vue学习:chrome 中 vuetools 开发插件 的下载、安装
|
11月前
|
Web App开发 存储 前端开发
《Chrome谷歌插件Top10》开发最好用的谷歌插件
本文介绍了多个实用的浏览器插件及其安装方法。包括CSDN浏览器助手,提供高效开发工具;FeHelper,前端必备工具,支持格式化、压缩等功能;uBlock Origin,有效屏蔽广告和弹窗;PageLiner,网页标尺工具,便于前端设计;Fatkun,批量下载图片;Smallpdf,文件转换工具;Octotree,GitHub代码树插件;Awesome Screenshot,截图与录屏工具;ColorZilla,颜色拾取器;Dark Reader,暗黑模式阅读插件。安装方式有通过Chrome商店搜索或下载crx插件本地安装。
280 11
|
11月前
|
Web App开发 JSON 前端开发
30个Chrome 灵魂插件!
30个Chrome 灵魂插件!
137 4
|
11月前
|
Web App开发 前端开发 JavaScript
手摸手教你,从0到1开发一个Chrome浏览器插件
开发 Chrome 插件既有趣又具成就感。本教程将引导你从零开始,逐步创建一个简单的 Chrome 插件。首先了解 Chrome 插件是可增强浏览器功能的小程序。以一个基础示例开始,你将学习如何设置开发环境,包括安装 Chrome 和准备文本编辑器,并掌握 HTML、CSS 和 JavaScript 的基础知识。接着,我们将构建插件的基本结构,涉及 `manifest.json` 配置文件、`background.js` 后台脚本、`popup.html` 用户界面以及 `style.css` 样式表。
682 8
|
11月前
|
Web App开发
Chrome 护眼模式 - 黑暗模式 - 夜眼(Night Eye) 插件
Chrome 护眼模式 - 黑暗模式 - 夜眼(Night Eye) 插件
389 0
Chrome 护眼模式 - 黑暗模式 - 夜眼(Night Eye) 插件
|
12月前
|
Web App开发 JavaScript 前端开发
Chrome插件实现问题之最新的 Chrome 浏览器架构有什么新的改变吗
Chrome插件实现问题之最新的 Chrome 浏览器架构有什么新的改变吗
112 10
|
12月前
|
JavaScript 前端开发 Web App开发
Chrome插件实现问题之单进程浏览器的不稳定主要体现在什么地方
Chrome插件实现问题之单进程浏览器的不稳定主要体现在什么地方
108 10
|
12月前
|
Web App开发 数据可视化 前端开发
Chrome插件实现问题之content-scripts能访问哪些Chrome API
Chrome插件实现问题之content-scripts能访问哪些Chrome API
|
12月前
|
Web App开发 前端开发 JavaScript
Chrome插件实现问题之用户在浏览器中输入URL后,浏览器进程会进行什么操作
Chrome插件实现问题之用户在浏览器中输入URL后,浏览器进程会进行什么操作

热门文章

最新文章