ReplaceGoogleCDN 项目使用教程
1. 项目的目录结构及介绍
ReplaceGoogleCDN 项目的目录结构如下:
ReplaceGoogleCDN/
├── README.md
├── manifest.json
├── background.js
├── content.js
├── options.html
├── options.js
├── icons/
│ ├── icon16.png
│ ├── icon48.png
│ └── icon128.png
└── rules/
├── rule1.json
├── rule2.json
└── rule3.json
目录介绍
README.md
: 项目说明文档。manifest.json
: Chrome 扩展的配置文件,定义了扩展的基本信息和权限。background.js
: 后台脚本,处理扩展的主要逻辑。content.js
: 内容脚本,注入到网页中执行特定任务。options.html
: 扩展的设置页面。options.js
: 处理设置页面的逻辑。icons/
: 存放扩展图标的目录。rules/
: 存放重定向规则的目录。
2. 项目的启动文件介绍
manifest.json
manifest.json
是 Chrome 扩展的配置文件,定义了扩展的基本信息、权限、启动文件等。以下是该文件的主要内容:
{
"manifest_version": 2,
"name": "ReplaceGoogleCDN",
"version": "1.0",
"description": "将 Google CDN 替换为国内的",
"permissions": [
"webRequest",
"webRequestBlocking",
"https://ajax.googleapis.com/",
"https://fonts.googleapis.com/",
"https://themes.googleusercontent.com/",
"https://fonts.gstatic.com/",
"https://www.google.com/recaptcha/",
"https://secure.gravatar.com/"
],
"background": {
"scripts": ["background.js"]
},
"content_scripts": [
{
"matches": ["<all_urls>"],
"js": ["content.js"]
}
],
"browser_action": {
"default_icon": {
"16": "icons/icon16.png",
"48": "icons/icon48.png",
"128": "icons/icon128.png"
},
"default_title": "ReplaceGoogleCDN"
}
}
background.js
background.js
是扩展的后台脚本,负责处理扩展的主要逻辑,包括请求的重定向等。
// background.js 示例代码
chrome.webRequest.onBeforeRequest.addListener(
function(details) {
// 重定向逻辑
return { redirectUrl: redirectToNewUrl(details.url) };
},
{ urls: ["<all_urls>"] },
["blocking"]
);
3. 项目的配置文件介绍
rules/
目录
rules/
目录下存放了重定向规则的配置文件,每个文件定义了一组重定向规则。以下是一个示例:
// rules/rule1.json
{
"rules": [
{
"from": "https://ajax.googleapis.com/",
"to": "https://ajax.loli.net/"
},
{
"from": "https://fonts.googleapis.com/",
"to": "https://fonts.googleapis.cn/"
}
]
}
options.html
和 options.js
options.html
是扩展的设置页面,用户可以在这里调整扩展的配置。options.js
处理设置页面的逻辑。
<!-- options.html -->
<!DOCTYPE html>
<html>
<head>
<title>ReplaceGoogleCDN 设置</title>
</head>
<body>
<h1>ReplaceGoogleCDN 设置</h1>
<form id="optionsForm">
<!-- 设置选项 -->
</form>
<script src="options.js"></script>
</body>
</html>
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考