Skip to content

Commit 8ca64df

Browse files
committed
update: 修改文件 🥳
1 parent ccbdcfb commit 8ca64df

File tree

5 files changed

+113
-37
lines changed

5 files changed

+113
-37
lines changed

Diff for: docs/.vitepress/serviceWorker.ts

-3
This file was deleted.

Diff for: docs/.vitepress/webWorker.js

-3
This file was deleted.

Diff for: docs/blog/浏览器插件开发-概念篇.md

+113-15
Original file line numberDiff line numberDiff line change
@@ -2,29 +2,127 @@
22

33
> 浏览器插件是一种可以在浏览器中安装的软件,它可以增强浏览器的功能,比如可以通过插件实现广告屏蔽、页面翻译、下载管理等功能。
44
5-
## 开发基础知识概念介绍
5+
## manifest.json
66

7-
### 1. 插件的分类
7+
manifest.json 是插件的配置文件,它可以配置插件的名称、版本、图标、权限等。
88

9-
浏览器插件主要分为以下几类:
9+
```json5
10+
{
11+
name: "My Extension",
12+
version: "1.0",
13+
manifest_version: 3,
14+
description: "This extension is a starting point to create a real extension.",
15+
permissions: ["storage", "activeTab"],
16+
action: {
17+
default_popup: "popup.html",
18+
default_icon: {
19+
"16": "images/get_started16.png",
20+
"48": "images/get_started48.png",
21+
"128": "images/get_started128.png",
22+
},
23+
},
24+
background: {
25+
service_worker: "background.js",
26+
},
27+
options_page: "options.html",
28+
content_scripts: [
29+
{
30+
matches: ["<all_urls>"],
31+
js: ["content.js"],
32+
css: [],
33+
},
34+
],
35+
web_accessible_resources: ["images/*.png"],
36+
icons: {
37+
"16": "images/get_started16.png",
38+
"48": "images/get_started48.png",
39+
"128": "images/get_started128.png",
40+
},
41+
browser_action: {
42+
default_popup: "popup.html",
43+
default_icon: {
44+
"16": "images/get_started16.png",
45+
"48": "images/get_started48.png",
46+
"128": "images/get_started128.png",
47+
},
48+
},
49+
host_permissions: ["http://www.example.com/"],
50+
optional_permissions: ["tabs"],
51+
chrome_url_overrides: {
52+
newtab: "newtab.html",
53+
},
54+
}
55+
```
1056

11-
- **扩展插件**:扩展插件是一种可以修改浏览器的行为的插件,比如可以通过扩展插件实现广告屏蔽、页面翻译、下载管理等功能。
12-
- **主题插件**:主题插件是一种可以修改浏览器的外观的插件,比如可以通过主题插件修改浏览器的背景、图标等。
13-
- **应用插件**:应用插件是一种可以在浏览器中运行的应用程序,比如可以通过应用插件实现在线聊天、音乐播放等功能。
14-
- **搜索插件**:搜索插件是一种可以在浏览器中添加搜索引擎的插件,比如可以通过搜索插件添加百度、谷歌等搜索引擎。
15-
- **工具栏插件**:工具栏插件是一种可以在浏览器中添加工具栏的插件,比如可以通过工具栏插件添加书签、历史记录等功能。
16-
- **辅助插件**:辅助插件是一种可以在浏览器中添加辅助功能的插件,比如可以通过辅助插件实现页面截图、网页翻译等功能。
57+
## background.js
1758

18-
### background.js
59+
background.js 是插件的后台脚本,它可以监听浏览器事件、处理插件请求、与页面通信等。基于 background 的 service_workerAPI 可以打开一个独立后台运行脚本。此脚本会随着插件安装,初始化执行一次,然后一直在后台运行。可以用来存储浏览器的全局状态数据。background 脚本是长时间运行在后台,随着浏览器打开就运行,直到浏览器关闭而结束运行。通常把需要一直运行的、启动就运行的、全局公用的数据放到 background 脚本。
1960

20-
background.js 是插件的后台脚本,它可以监听浏览器事件、处理插件请求、与页面通信等。
61+
```js
2162

22-
### content.js
63+
```
2364

24-
content.js 是插件的内容脚本,它可以在页面中注入脚本、修改页面内容、与页面通信等。
65+
## content.js
2566

26-
### manifest.json
67+
content.js 是插件的内容脚本,它可以在页面中注入脚本、修改页面内容、与页面通信等。content-scripts(内容脚本)是在网页上下文中运行的文件。通过使用标准的文档对象模型(DOM),它能够读取浏览器访问的网页的详细信息,可以对打开的页面进行更改,还可以将 DOM 信息传递给其父级插件。内容脚本相对于 background 还是有一些访问 API 上的限制,它可以直接访问以下 chrome 的 API
2768

28-
manifest.json 是插件的配置文件,它可以配置插件的名称、版本、图标、权限等。
69+
- i18n
70+
- storage
71+
- runtime:
72+
- connect
73+
- getManifest
74+
- getURL
75+
- id
76+
- onConnect
77+
- onMessage
78+
- sendMessage
79+
80+
content.js 运行于一个独立、隔离的环境,它不会和主页面的脚本或者其他插件的内容脚本发生冲突 有 2 种方式添加 content 脚本,一种是通过 manifest.json 配置,另一种是通过 chrome.tabs.executeScript()方法注入。通过 manifest.json 配置的方式,需要在 manifest.json 中配置 content_scripts 属性,如下所示:
81+
82+
```json5
83+
{
84+
content_scripts: [
85+
{
86+
matches: ["<all_urls>"],
87+
js: ["content.js"],
88+
css: [],
89+
},
90+
],
91+
}
92+
```
93+
94+
content_scripts 属性除了配置 js,还可以设置 css 样式,来实现修改页面的样式。matches 表示需要匹配的页面;除了这 3 个属性,还有
95+
96+
run_at: 脚本运行时刻,有以下 3 个选项:
97+
98+
- document_idle,默认;浏览器会选择一个合适的时间注入,并是在 dom 完成加载
99+
- document_start;css 加载完成,dom 和脚本加载之前注入。
100+
- document_end:dom 加载完成之后
101+
102+
exclude_matches:排除匹配到的 url 地址。作用和 matches 相反。
103+
104+
chrome.tabs.executeScript()方法注入,可以通过 chrome.tabs.executeScript()方法注入脚本,如下所示:
105+
106+
```js
107+
chrome.tabs.executeScript(tabId, {
108+
file: "content.js",
109+
});
110+
```
111+
112+
## popup.html
113+
114+
popup.html 是插件的弹窗页面,它可以显示插件的功能、与用户交互等。
115+
116+
## options.html
117+
118+
options.html 是插件的设置页面,它可以配置插件的参数、保存用户设置等。
119+
120+
## newtab.html
29121

30122
## 浏览器插件开发-通信
123+
124+
[浏览器插件开发-通信](./浏览器插件开发-通信篇.md)
125+
126+
## 参考链接
127+
128+
- [浏览器插件开发](https://mp.weixin.qq.com/s/QUgT5bGRutstyo0l6nHFfg)

Diff for: docs/css/scroll-snap-type.md

Whitespace-only changes.

Diff for: docs/readme.md

-16
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,3 @@
11
# JavaScriptGuide dev
22

33
![img.png](./public/javascript-guide-logo.svg)
4-
5-
```text
6-
canvas
7-
requestAnimationFrame
8-
innerWidth/Height...
9-
style="--i: 2; --j: 0"
10-
transform-style: preserve-3d;
11-
perspective: 1000px;
12-
scroll-snap-type
13-
scroll-snap-align: start;
14-
textShadow
15-
shape-outside: circle();
16-
background-clip: text;
17-
-webkit-background-clip: text;
18-
-webkit-text-fill-color: transparent;
19-
```

0 commit comments

Comments
 (0)