Skip to content

jsBody

将现有响应内容体t替换成指定内容((仅对响应类型 content-type 包含 javascript,且包含响应内容体的状态码(如 200/500 等)有才效)

⚠️ 注意:204、304 等无响应内容体的请求不受影响

规则语法

txt
pattern jsBody://value [filters...]
参数描述详细文档
pattern匹配请求 URL 的表达式匹配模式文档
value文本或二进制内容,支持以下类型:
• 目录/文件路径
• 远程 URL
• 内联/内嵌/Values内容
操作指令文档
filters可选过滤器,支持匹配:
• 请求URL/方法/头部/内容
• 响应状态码/头部
过滤器文档

配置示例

内联方式

txt
www.example.com/path1 jsBody://(Hello) file://(-test-)
www.example.com/path2 jsBody://(Hello) file://(-test-) resType://js
www.example.com/path3 jsBody://(Hello) file://(-test-) resType://css
  • 请求 https://www.example.com/path1/to 响应内容变成 <script>Hello</script>
  • 请求 https://www.example.com/path2/to 响应内容变成 Hello
  • 请求 https://www.example.com/path3/to 响应内容变成 -test-

内嵌/Values方式

txt
``` body.txt
Hello world.
```
www.example.com/path1 jsBody://{body.txt} file://(-test-)
www.example.com/path2 jsBody://{body.txt} file://(-test-) resType://js
www.example.com/path3 jsBody://{body.txt} file://(-test-) resType://css
  • 请求 https://www.example.com/path1/to 响应内容变成 <script>Hello world.</script>
  • 请求 https://www.example.com/path2/to 响应内容变成 Hello world.
  • 请求 https://www.example.com/path3/to 响应内容变成 -test-

本地/远程资源

txt
www.example.com/path1 jsBody:///User/xxx/test.js
www.example.com/path2 jsBody://https://www.xxx.com/xxx/params.js
# 通过编辑临时文件
www.example.com/path3 jsBody://temp/blank.js

为注入的脚本设置 <script> 标签属性

通过 jsBody 注入到 HTML 页面的脚本,Whistle 会自动为其包裹 <script> 标签。若需要为该标签设置额外的属性,如 nomodulemoduledeferasynccrossorigin 等,可以使用 lineProps 参数进行配置。

txt
www.example.com/path1 jsBody://https://www.xxx.com/xxx/params.js lineProps://nomodule
www.example.com/path2 jsBody://https://www.xxx.com/xxx/params.js lineProps://module
www.example.com/path3 jsBody://https://www.xxx.com/xxx/params.js lineProps://defer
www.example.com/path4 jsBody://https://www.xxx.com/xxx/params.js lineProps://async
www.example.com/path5 jsBody://https://www.xxx.com/xxx/params.js lineProps://crossorigin

属性说明与示例

属性用途说明配置示例
nomodule传统浏览器中执行,不支持 ES 模块的浏览器会运行此脚本lineProps://nomodule
module声明为 ES 模块,支持模块化导入lineProps://module
defer异步加载,在文档解析完成后执行lineProps://defer
async异步加载,下载完成后立即执行lineProps://async
crossorigin启用跨域资源共享(CORS)模式lineProps://crossorigin

关联协议

  1. 替换响应内容:resBody
  2. 在 JavaScript 类型的响应内容前面注入内容:jsBody
  3. 在 JavaScript 类型的响应内容后面注入内容:jsBody