对于理解代码的人,使用 HTMLRewriter 可能会更优雅。
但是对于不懂代码的人,还是简单粗暴来的更有效。
```js
addEventListener("fetch", event => {
event.respondWith(handleRequest(event.request))
})
async function handleRequest(request) {
// Cloudflare Workers 分配的域名
const cf_worker_host = "
icy-snowflake-f4de.ikoa.workers.dev";
// 自定义的域名
const customize_host = "
snow.byewind.com";
// 原地址
const origin_host = "snowui.framer.website";
// 替换 2 次以同时兼容 Worker 来源和域名来源
const url = request.url
.replace(cf_worker_host, origin_host)
.replace(customize_host, origin_host);
const originalResponse = await fetch(url);
if (originalResponse.headers.get('Content-Type') === 'text/html') {
const rewritedContent = await originalResponse.text().then(text => {
return text.replace('</body>', '<script>alert("dev")</script></body>');
});
return new Response(rewritedContent, originalResponse)
} else {
return originalResponse
}
}
```