-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmanifest.json
190 lines (173 loc) · 11.1 KB
/
manifest.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
{
// http://blog.haoji.me/chrome-plugin-develop.html
// https://github.com/sxei/chrome-plugin-demo
// https://developer.chrome.com/docs/extensions/mv3/manifest/
// https://developer.chrome.com/docs/extensions/reference/
// 清單文檔的版本,必需,需要注意不同版本之間的配置寫法有差異,需要配置寫法與版本對應方可;
"manifest_version": 3,
// 插件的名稱;
"name": "Automatic",
// 插件的版本;
"version": "0.0.0.1", // "manifest_version_3",
// 插件描述;
"description": "一個自動化操作網頁的瀏覽器擴展工具 , Author : 趙健 , E-mail : [email protected] , Telephont number : +86 18604537694 , E-mail : [email protected] , Date : 歲在丙申 .",
// 圖標;
"icons": {
"16": "image/icon.png",
"48": "image/icon.png",
"128": "image/icon.png"
},
// // 聲明權限控制策略 Manifest V3 的參數;
"content_security_policy": {
// "extension_pages": "script-src 'self'; object-src 'self';",
"extension_pages": "default-src 'self' 'wasm-unsafe-eval' 'unsafe-inline' 'unsafe-eval' blob: filesystem: http: https: moz-extension: wss:; script-src 'self' 'wasm-unsafe-eval'; worker-src 'self' 'wasm-unsafe-eval'; object-src 'self'; connect-src 'self' 'wasm-unsafe-eval' 'unsafe-inline' 'unsafe-eval' blob: filesystem: http: https: moz-extension: wss:; child-src 'self' 'wasm-unsafe-eval' 'unsafe-inline' 'unsafe-eval' blob: filesystem: http: https: moz-extension: wss:;",
"sandbox": "sandbox allow-scripts allow-forms allow-popups allow-modals; script-src 'self' 'unsafe-inline' 'unsafe-eval'; child-src 'self';"
},
// // 下面這個:"content_security_policy" 參數是 Manifest V2 獨有的參數;
// "content_security_policy": "default-src 'self' 'unsafe-inline' 'unsafe-eval' blob: filesystem: http: https: blob: filesystem: https: moz-extension: wss:; script-src 'self' 'unsafe-inline' 'unsafe-hashes' 'unsafe-eval' 'nonce-...' blob: filesystem:; object-src 'self' 'unsafe-eval' blob: filesystem:; style-src 'self' 'unsafe-inline' 'unsafe-eval' blob: filesystem:; connect-src 'self' 'unsafe-inline' 'unsafe-eval' blob: filesystem: http: https: moz-extension: wss:; child-src 'self' 'wasm-unsafe-eval' 'unsafe-inline' 'unsafe-eval' blob: filesystem: http: https: moz-extension: wss:;",
// // "content_security_policy": {
// // "extension_pages": '...',
// // "sandbox": '...',
// // "default-src": 'self' 'unsafe-inline' 'unsafe-eval' blob: filesystem: http: https:,
// // "script-src": 'self' 'unsafe-eval' blob: filesystem:,
// // "worker-src": 'self' 'unsafe-eval' blob: filesystem:,
// // "object-src": 'self' 'unsafe-eval' blob: filesystem:,
// // "style-src": 'self' 'unsafe-inline' 'unsafe-eval' blob: filesystem:,
// // "connect-src": 'self' 'unsafe-inline' 'unsafe-eval' blob: filesystem: http: https:,
// // "child-src": 'self' 'wasm-unsafe-eval' 'unsafe-inline' 'unsafe-eval' blob: filesystem: http: https: moz-extension: wss:;
// // },
// 常駐的後臺 JavaScript 脚本或者 HTML 頁面脚本;
"background": {
// 2 兩種指定方式,如果指定 JavaScript,會自動生成一個背景頁;
"service_worker": "background/starter_backgroundHtml.js",
// "service_worker": "background/background.html",
"type": "module"
// 參數:"scripts" 和 "page" 是 Manifest V2 獨有的參數;
// "scripts": ["background/starter_backgroundHtml.js"],
// "page": "background/background.html" // 注意,在 background.html 文檔中不能使用 <script> JS code </script> 標簽的方式寫 JavaScript 代碼,如果需要寫 JavaScript 代碼,可以單獨創建 .js 文檔(例如單獨創建一個 background.js 文檔),將需要編寫的 JavaScript 代碼單獨寫在這個 .js 文檔中(例如寫在這個 background.js 文檔中),然後在 background.html 文檔中使用 <script src=./background.js></script> 的方法引入外部的 JavaScript 代碼脚本文檔;
},
// 參數:"action" 是 Manifest V3 參數; 瀏覽器右上角圖標設置,browser_action、page_action、app 必須三選一; // 當某些特定頁面打開時才顯示的圖標;
"action": {
"default_title": "這是一個自動化操作網頁的 Chrome 擴展工具示例.",
// "default_popup": "popup/popup.html", // 注意,在 popup.html 文檔中不能使用 <script> JS code </script> 標簽的方式寫 JavaScript 代碼,如果需要寫 JavaScript 代碼,可以單獨創建 .js 文檔(例如單獨創建一個 popup.js 文檔),將需要編寫的 JavaScript 代碼單獨寫在這個 .js 文檔中(例如寫在這個 popup.js 文檔中),然後在 popup.html 文檔中使用 <script src=./popup.js></script> 的方法引入外部的 JavaScript 代碼脚本文檔;
// "default_popup": "background/background.html",
"default_icon": {
"16": "image/icon.png",
"48": "image/icon.png",
"128": "image/icon.png"
}
},
/* 以下兩組參數:"browser_action" 和 "page_action" 是 Manifest V2 獨有的參數;
// 瀏覽器右上角圖標設置,browser_action、page_action、app 必須三選一;
"browser_action": {
"default_icon": "image/icon.png",
// 鼠標懸停時圖標的標題,可選;
"default_title": "這是一個自動化操作網頁的 Chrome 擴展工具示例.",
"default_popup": "popup/popup.html" // 注意,在 popup.html 文檔中不能使用 <script> JS code </script> 標簽的方式寫 JavaScript 代碼,如果需要寫 JavaScript 代碼,可以單獨創建 .js 文檔(例如單獨創建一個 popup.js 文檔),將需要編寫的 JavaScript 代碼單獨寫在這個 .js 文檔中(例如寫在這個 popup.js 文檔中),然後在 popup.html 文檔中使用 <script src=./popup.js></script> 的方法引入外部的 JavaScript 代碼脚本文檔;
// "default_popup": "background/background.html"
},
// 當某些特定頁面打開時才顯示的圖標;
"page_action": {
"default_icon": "image/icon.png",
"default_title": "我是 page Action",
"default_popup": "popup/popup.html"
// "default_popup": "background/background.html"
},
*/
// 需要直接注入頁面的 JavaScript 脚本代碼;
"content_scripts": [
{
// "matches": ["http://*/*", "https://*/*"],
"matches": [
"<all_urls>" // 當值設爲 "<all_urls>" 時,表示匹配所有網址;
],
// 多個 JavaScript 脚本代碼按順序注入;
"js": [
"content_script.js"
// "lib/jquery-3.6.0/jquery-3.6.0.min.js"
],
// JavaScript 脚本的注入時機要求可以寬鬆一些,但是 CSS 脚本的注入時機就需要小心一點,因爲可能會影響網頁 HTML 解析的全局樣式;
"css": [
"css/custom.css"
],
"run_at": "document_end" // 代碼注入的時間,預設值為:document_idle,可選值為:"document_start", "document_end", or "document_idle",最後一個表示頁面空閑時;
}
// 這裏僅僅是爲了演示 content-script 可以配置多個規則;
// {
// "matches": ["*://*/*.png", "*://*/*.jpg", "*://*/*.gif", "*://*/*.bmp"],
// "js": ["devtools/show-image-content-size.js"]
// }
],
// 權限申請;
"permissions": [
// {"fileSystem": ["write", "retainEntries", "directory"]}, // 使用 chrome.fileSystem API 創建、讀取、瀏覽與寫入用戶本地文檔系統中經過沙箱屏蔽的一個區域;
"downloads", // 從 Chrome 擴展的後臺頁面下載數據到本地硬盤文檔的權限;
"contextMenus", // 申請鼠標右鍵菜單的權限;
"tabs", // 申請標簽的權限;
"notifications", // 申請通知的權限;
"webRequest", // 申請 web 請求的權限;
// "webRequestBlocking", // 阻塞式 web 請求監聽;
"storage" // 申請插件本地存儲的權限;
// "activeTab",
// "scripting",
// "http://*/*", // 申請可以通過 executeScript 或者 insertCSS 訪問的網站的權限;
// "https://*/*" // 申請可以通過 executeScript 或者 insertCSS 訪問的網站的權限;
// "*://*/*"
],
// "optional_permissions": [
// "storage", // 申請插件本地存儲的權限;
// "unlimitedStorage"
// ],
// "host_permissions": [
// "http://*/*", // 申請可以通過 executeScript 或者 insertCSS 訪問的網站的權限;
// "https://*/*" // 申請可以通過 executeScript 或者 insertCSS 訪問的網站的權限;
// ],
// 普通頁面能夠直接訪問的插件資源列表,如果不設置,是無法直接訪問的; Manifest V3 參數;
"web_accessible_resources": [
{
"resources": [
"injected_script.js",
"CrawlerStrategyServer/test/test_injected.js",
"CrawlerStrategyServer/CFDA/CFDA_injected.js",
"CrawlerStrategyServer/WUXIPEOPLEsHOSPITAL/WUXIPEOPLEsHOSPITAL_injected.js"
],
"matches": [
// "*://*/*",
"<all_urls>"
],
"extension_ids": []
}
// {
// "resources": [
// "style/extension.css",
// "script/extension.js"
// ],
// "matches": [
// "https://example.com/*"
// ]
// }
],
// // 下面這組:"web_accessible_resources" 參數是 Manifest V2 獨有的參數;
// "web_accessible_resources": [
// "injected_script.js",
// "CrawlerStrategyServer/test/test_injected.js",
// "CrawlerStrategyServer/CFDA/CFDA_injected.js",
// "CrawlerStrategyServer/WUXIPEOPLEsHOSPITAL/WUXIPEOPLEsHOSPITAL_injected.js"
// ],
"homepage_url": "https://www.baidu.com", // 擴展作者的個人主頁;
// 覆蓋瀏覽器默認頁面;
/*
"chrome_url_overrides": {
"newtab": "./newtab.html" // 覆蓋瀏覽器默認的新標籤頁;
},
*/
"options_page": "options/options.html", // Chrome-40 版本以前的擴展配置寫法;
// Chrome-40 版本以後的擴展配置頁寫法,如果兩個都寫,新版 Chrome 只認後面這一個;
"options_ui": {
"page": "options/options.html"
// "chrome_style": true // 添加一些預設的樣式(CSS),參數 "chrome_style" 是 Manifest V2 獨有的參數;
},
"omnibox": { "keyword" : "Automatic" }, // 向地址欄注冊一個關鍵字以提供搜索建議,只允許設置一個關鍵字;
"default_locale": "zh_TW", // "en", "zh_CN" 默認語言;
"devtools_page": "devtools/devtools.html" // devtools 頁面入口,注意只能指向一個 HTML 代碼網頁文檔,不能是 JavaScript 代碼脚本文檔;
}